IIS 8.5 Manager: Application Pools and Sites nodes missing

iis

I've encountered a weird problem that I haven't been able to solve and haven't found any information on: the Application Pools and Sites nodes in the IIS Manager of our IIS 8.5 went missing!

enter image description here

This is one of four servers we're running with very similar setup, but it's the only one with Windows Server 2012 R2 and IIS 8.5: we have the default App Pools plus one for our application, and our site and web application which uses our app pool. Everything was running well until Sunday, June 1, 2014, when we received an error message from our monitoring service that our application was unavailable on that server.

We discovered the following entries in the event log:

[20:44:24] A worker process '27520' serving application pool 'camping.info' failed to stop a listener channel for protocol 'http' in the allotted time.  The data field contains the error number.
[20:44:24] A process serving application pool 'camping.info' exceeded time limits during shut down. The process id was '27520'.
[20:45:54] A worker process '40744' serving application pool 'camping.info' failed to stop a listener channel for protocol 'http' in the allotted time.  The data field contains the error number.
[20:45:54] A process serving application pool 'camping.info' exceeded time limits during shut down. The process id was '40744'.
[20:45:54] Application pool 'camping.info' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

When we RDP'd into the server and looked into the IIS Manager, the Application Pools and Sites nodes were not visible anymore. Instead, the event log was full of errors like the following (as a result of trying to open the Server node below Start Page):

IISMANAGER_ERROR_LOADING_PROVIDER_TYPE

IIS Manager could not load type 'Microsoft.Web.Management.AspNet.SessionState.SessionStateModuleProvider, Microsoft.Web.Management.Aspnet, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' for module provider 'SessionState' that is declared in %windir%\system32\inetsrv\config\administration.config. Verify that the type is correct, and that the assembly that contains the module provider is in the Global Assembly Cache (GAC).

Exception:System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.Management.Aspnet, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.Web.Management.Aspnet, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
   at System.Type.GetType(String typeName, Boolean throwOnError)
   at Microsoft.Web.Management.Server.AdministrationModuleProvider.GetModuleProvider(String userName, String connectionName)

After a few tries with restoring the working iis configuration (C:\Windows\System32\inetsrv\Config\applicationhost.config), we even uninstalled IIS completely and reinstalled it (with some difficulties) but to no avail. Searching for the missing dlls on disk we found that their versions were actually 8.5.. so we went ahead and replaced all instances of 8.0.0.0 with 8.5.0.0 in C:\Windows\System32\inetsrv\Config\administration.config but the errors stayed (mentioning 8.0.0.0 still!).

The interesting thing is that our application is running again on the server – it's just that we cannot see it in IIS Manager. We'd like to be able to manage it through the GUI and get rid of those errors in the event log.

Any takers?

Best Answer

Finally solved this for my situation:

On Mine seemed to corrupt the applicationhost.config file possibly by msdeploy and/or Visual Studio 2012. Looked ok though. But after a thorough comparison I noticed it was putting the (sites) (/sites) in the wrong place and the tree view wasn't coming up in IIS Manager. Moving the sites section back to where in should be did the trick. (just after the (/log) section)

MSdeploy otherwise was working fine just screwed up IIS manager sites view.

Happened to me only on servers where sites were deployed via VS2012 and msdeploy with 2012R2 running IIS8.5