Monday, March 18, 2013

IIS HTTP Error 503 - Failed to find the RegisterModule entrypoint in the module DLL C:\Windows\System32\inetsrv\iis_ssi.dll

It started with an 503 http error while browsing WCF service hosted in IIS in one of my colleagues machine. He was able to find that the application pool is getting automatically stopped when he browse the service. I was pulled into this after his team members had tried for couple of hours.The error is simple as

"HTTP Error 503. The is service unavailable"

Since it is about automatic app pool stopping and disabling the same, I started from the event log. There were 2 clear entries in the System log about this incident.

First one was a warning
A listener channel for protocol 'http' in worker process '4752' serving application pool 'ASP.NET v4.0' reported a listener channel failure.  The data field contains the error number.

Followed by an Error
Application pool 'ASP.NET v4.0' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

This shows a scope for getting more details in the application event log. Yes there was one application error.

Failed to find the RegisterModule entrypoint in the module DLL C:\Windows\System32\inetsrv\iis_ssi.dll.  The data is the error.

Now its more narrowed. The server side include module is not getting loaded or some issues while finding the entry point. I don't think the second sentence about data has any meaning. How the data becomes error? Actual trouble shooting starts from here
  1. First thing I checked was for the presence of iis_ssi.dll in the inetsrv folder. It was present.
  2. Next thing tried was to disable that module via IIS -> Features -> Modules -> ServerSideIncludeModule and select Remove. But it showed an security access related error message.
  3. Then I checked for permissions. I was not able to find the NetworkService in the Security tab of the file properties. Network Service is the user / service account which we use for the application pool. I gave permission to Network Service and restarted the IIS. But again failed.
  4. A research started at this time about iis_ssi.dll and ServerSideInclude module. We could see that its not an essential module for WCF to work. So decided to remove this feature from IIS. Went to appwiz.cpl -> Turn Windows features on or off -> Internet Information Services -> World Wide Web Services -> Application Development Features -> Server-Side Includes and unchecked the ServerSide Includes. It removed SSI feature from IIS and reconfigured it. Finally it asked a restart and after restart also the issue remained same.
  5. Last place about and IIS related config is the global configuration available at C:\Windows\System32\inetsrv\config\applicationHost.config file. So opened that file and searched for iis_ssi.dll. It gave an entry as follows

    <add name="ServerSideIncludeModule" image="%windir%\System32\inetsrv\iis_ssi.dll" />

    This means not only this entry but also all the references to "ServerSideIncludeModule" name needs to be removed. We saw around 4 places where the name is referred. Deleted all and restarted IIS. This time it worked.
  6. Below are some links which we got during debugging. Some says it may be due to web config file issues. To avoid that, we deleted all the applications from IIS and kept only one simple html file.
    1. http://mvolo.com/where-did-my-iis7-server-go-troubleshooting-503-quotservice-unavailablequot-errors/
    2. http://blogs.msdn.com/b/vpandey/archive/2009/08/04/http-error-503-the-service-is-unavailable.aspx
    3. Some sites mentioned that its a known issue in 64 bit machines it we host 32 bit apps. But our system is 32.
Looks like a chain of actions for troubleshooting.But it took total of 2 hours.

No comments: