Windows 2008 AND IISRESET.EXE

IISreset.exe is a magical command that resolves many problems! Err… well, yeah that command restarts all IIS related processes and thus essentially running it cleans up all the “mess”. So is there anything special about IISReset.exe in Windows 2008? Yes and I do not recommend using it and here’s very useful information that you must know about what this command does.

Windows 2008 introduced a new service called Windows Process Activation service aka WAS. In IIS 7.0 you can run HTTP and non HTTP services (like net.tcp) in the same application pool. WAS manages application pools and worker processes for HTTP and non HTTP protocols. IIS uses the HTTP protocol with WAS. With WAS we opened it up for others to use our process model. The IIS process model is very efficient and I believe we made this change due to good feedback.

Back to IISERSET…. IISReset.exe restarts the following Windows Services

  • IISADMIN
  • W3SVC
  • WAS

So do you see what would happen if your ran IISReset.exe with the intention to restart ONLY IIS, but you also have other services dependent via WAS?

Conclusion: Running IISReset.exe will restart WAS and restarting WAS will restart all services that are dependent on it, including IIS, if installed. This can be problematic in production environments where you have non HTTP services implemented with WAS but your intention is to only restart IIS. An example to this will be with Small Business Server.

Therefore, the recommended way to restart IIS on Windows 2008 machines will be to use one of the following methods:

  • Open IIS Manager and then select the server node. In the right side pane, you will have an option to restart IIS.
  • Open a command prompt as Administrator and run the following commands
  1. net stop w3svc
  2. net stop IISAdmin
  3. net start IISAdmin
  4. net start w3svc