EasyIIS – Manage your Sitecore Install the Easy Way

Posted by

Open Source Download & Instructions

The detailed usage instructions for EasyIIS are located are on the GitHub page.

Source Code: https://github.com/WeekendWarrior/EasyIIS

Sitecore Marketplace: https://marketplace.sitecore.net/en/Modules/E/EasyIIS.aspx

For more detailed background on why I created this module and other tips, read on below!

Background

In the past few years I have amassed quite a collection of Sitecore 8 and 9 sites on my laptop. This means several simultaneously running:

  • IIS App Pools
  • IIS websites
  • mongodb (several instances)
  • Solr (several instances)
  • SQL server (several instances)
  • Sitecore xConnect services (3 services per Sitecore 9 install)
  • Client VPN services

That is a lot of stuff to manage to keep your laptop running as efficiently as possible!

This was, in fact, too overwhelming for my laptop. If I was also running Visual Studio, firing up a slack screen share put it over the edge; my poor laptop would spike to 100% CPU instantly. So much for peer programming!

So I found myself constantly opening up IIS Manager and stopping and starting app pools and websites. Same for Service Manager. I realized I was clicking around these UIs so much I thought it was time to develop an easier way to manage these services.

I created an open source console app: EasyIIS. EasyIIS enables you very easily manage a grouping of IIS AppPools, websites and services on the command line (including git bash terminal, or VS code terminal). Just configure a path variable to EasyIIS.exe and you are good to go.

Soon after I created this app I did get a new laptop, I still use EasyIIS to manage my Sitecore installs – because its so easy! Why make your laptop work harder than it needs to?

Sitecore 9 is Pretty Complex

When you break it down a single install of Sitecore 9.1+ contains 10+(!) items to manage, per instance:

  1. IIS App Pool: Identity Server
  2. IIS App Pool: xConnect
  3. IIS App Pool: Sitecore Website Instance
  4. IIS Website: Identity Server
  5. IIS Website: xConnect
  6. IIS Website: Sitecore Website Instance
  7. Service: Solr
  8. Service: Sitecore (xConnect) Marketing Automation Engine
  9. Service: Sitecore (xConnect) Processing Engine
  10. Service: Sitecore (xConnect) Search Indexer
  11. Services: SQL Server, SQL Server Agent, SQL Server Browser

If you have three instances of Sitecore 9 installed at once, that is 30+ items to manage!

(Note that you can also manage SQL server services with EasyIIS, but since SQL is commonly shared across many Sitecore installs I just leave it alone. I do however set the Startup Type to “Automatic – Delayed Start”. More on this below).

With EasyIIS, you group together each list of app pools, websites and services as a “site”. Just list the name of the app pool, website service in config.json like so:

{  
  "sites": [
    {
      "name": "sitecore91site",
      "appPools": [
        "sitecore91site.identityserver",
        "sitecore91site.verndale-local.com",
        "sitecore91site.xconnect"
      ],
      "websites": [
        "sitecore91site.identityserver",
        "sitecore91site.verndale-local.com",
        "sitecore91site.xconnect"
      ],
      "services": [
        "solr-sitecore91site-9004",
        "sitecore91site.xconnect-MarketingAutomationService",
        "sitecore91site.xconnect-ProcessingEngineService",
        "sitecore91site.xconnect-IndexWorker"
      ]
    }
  ]
}

and can turn all items on (“up” verb) and off (“down” verb) as a group:

EasyIIS.exe up --site="sitecore91site"
EasyIIS.exe down --site="sitecore91site"

You can even turn all grouped sites on (“allup”) or off (“alldown”) in a single command. I find “alldown” the most useful because it can quickly turn everything off very quickly:

EasyIIS.exe allup
EasyIIS.exe alldown

EasyIIS is.. well.. Easy

EasyIIS was designed to be very simple. Not much code. No overly-complex architecture. Easy to download and setup.

While it was born to solve a Sitecore problem, it actually has no references to Sitecore binaries. It is very generic.

You can use EasyIIS to manage any IIS websites (Sitecore or not), or even no websites at all. You could use it just mange groups of windows services.

For example, I have one of my EasyIIS sites setup to turn on/off the Cisco AnyConnect VPN service, which is nice to turn on/off when I am working on that clients project.

Windows Service Tips

If you really want to squeeze additional performance out of your laptop, you should consider adjusting the default windows services settings for Sitecore-related services like, xConnect, Solr and SQL.

Automatic

This is the default setting on all three xConnect services when installing Sitecore 9.

“Automatic” always starts the services on boot, even if you don’t plan on Sitecore-ing that day.

Additionally, services set to “Automatic” will start the service during the boot process, potentially slowing down your boot-up time.

This is not ideal, nor required, on a development laptop. We can do better:

Automatic (Delayed Start)

If you change a service to “Delayed Start”, the service wont start until after boot is completed. This is an improvement over “Automatic” as this can possibly speed up your laptop boot time.

I recommend setting SQL server to “delayed start”. But note delayed start still starts the service, even if you don’t plan on using it.

That said, There is still another (and sometimes better) option:

Manual

This is my preferred method. Setting a service to “Manual” start means windows will completely ignore the service on boot and its up to you to manually turn it on, which you can do with EasyIIS.

Contribute!

Please feel free to contact me with EasyIIS suggestions in the comments below, on Twitter (@SteveStriga), or directly on GitHub with a pull request. Enjoy!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s