HTTP 500 Internal Server Error on IIS 7.5 with MVC3
- by Tor Haugen
I am trying to install an MVC3 application on our production server with no luck. The application is from a 3rd party (compiled), and so debugging is not available to me. Besides, I strongly suspect the error occurs before any code in the site has a chance to execute.
Our staging server is - as far as I can determine - set up excactly like the production server. Both run Windows Server 2008 Standard R2, both also run a Sharepoint 2010 site (though this install doesn't touch that in any way). IIS is version 7.5, and .NET Framework 4.0 (required by the MVC app) is (recently) installed (by me, with a reboot after). The application is very small and simple and, as far as I can tell sticks to fairly standard functionality - including forms authentication (ie. it doesnt' pull any dirty tricks).
The error message shown in the browser is very general:
HTTP Error 500.0 - Internal Server Error
An error message detailing the cause of this specific request failure
can be found in the application event log of the web server. Please review
this log entry to discover what caused this error to occur.
The bit about 'An error message detailing the cause' being in the application event log seems to be just speculation - a pious hope that whatever code actually caused the error will log it. Nothing useful is to be found in the event log (only the very same message, logged by IIS).
Module: AspNetInitClrHostFailureModule
Notification: BeginRequest
Handler: StaticFile
Error Code: 0x80070002
Requested URL: http://xxxxxx.xxxxxx.xx:80/
Physical Path: C:\Xxxxxxx\Prod\WebClient
Logon Method: Not yet determined
Logon User: Not yet determined
Using Failed Request Tracing, I have been able to track the error (as also indicated above) to the AspNetInitClrHostFailureModule:
103. -NOTIFY_MODULE_START
ModuleName AspNetInitClrHostFailureModule
Notification 1
fIsPostNotification false
Notification BEGIN_REQUEST
104. -SET_RESPONSE_ERROR_DESCRIPTION
ErrorDescription An error message detailing the cause of this specific
request failure can be found in the application event log of the web server.
Please review this log entry to discover what caused this error to occur.
105. -MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName AspNetInitClrHostFailureModule
Notification 1
HttpStatus 500
HttpReason Internal Server Error
HttpSubStatus 0
ErrorCode 2147942402
ConfigExceptionInfo
Notification BEGIN_REQUEST
ErrorCode The system cannot find the file specified. (0x80070002)
So there you have it. Seemingly, the AspNetInitClrHostFailureModule fails to find some file. So some questions are:
What is the AspNetInitClrHostFailureModule? It is not listed in the fairly exhausting list of modules configurable in IIS manager for the site. I have had no success googling it either. Maybe it's secret..
I access the root URL of the site. This is supposed to be redirected to /Account/LogOn by the FormsAuthenticationModule. Why then is the handler StaticFile? Is that a clue?
I have tried removing the infamous system.webserver/modules/runAllManagedModulesForAllRequests attribute, and that makes the error go away (but MVC not actually working, of course). I am prepared to specify all necessary modules manually if that's what it takes, but if the AspNetInitClrHostFailureModule is actually needed, I will be just as stuck. Does anyone know, or can anyone direct me to someone who knows, exactly what modules a typical MVC3 application actually needs?
This question might well be a duplicate of this one, but he didn't get any useful answer, and also asked less specific questions. So I'll have my own go.
Hoping for some help here :)
Edit: I have now tried setting up a trivial MVC 3 project on the server. I created a new project using the MVC Application template, compiled it and deployed it to the server. It behaves in exactly the same way. The server simply cannot run MVC 3 projects.