Installing a Production Server for ASP.NET MVC 2 – Part 2
A few days ago I helped a client to solve a problem they had when they deployed an ASP.NET MVC 2 application. In a previous post I wrote about how you can install a production server in order to run ASP.NET MVC 2 application. The client team have installed the server according to the AspNetMVC2 MSI installer section (in my post) and then they used Phil Haack’s IIS6 Extension-less URLs solution to enable the routing engine. Life was beautiful and they were on the right track.
running the application produced the “page cannot be found” page:
This made them and me to scratch our heads. So the first thing to do in such cases is to check the IIS log file which can be very helpful by holding the error code which was 404.2. While Googling the net we found the Getting an ASP.NET 4 application to work on IIS6 post by Johan Driessen which holds the solution. Apparently when you install .Net 4 on Windows Server 2003 with IIS6 the .NET 4 ASP.NET ISAPI extension is installed disabled…
By using the following command through the command line you can check whether the ISAPI is enabled:
If you find out that the status for the .NET 4 ASP.NET ISAPI extension is 0 then in order to enable it you will need to run the following command in the command line:
You need to run both of the previous commands in <WINDOWS DIR>/System32.
That solved the client’s problems and the application is running on the production server now.
Another option to do the same thing is through the Web Service Extensions in the IIS Manager. All you have to do is to mark ASP.NET 4 in the extension list and press the Allow button. The following figure shows how to do that:
Thanks to Ran Wahle for this tip!