ASP.NET routing on IIS 6

2020-02-25 02:38发布

问题:

I have created a basic site using ASP.NET routing according to Mike Ormond's example "Using ASP.NET routing Independent of MVC". This works fine on my local machine running the built-in web server.

However, when I deploy it to my server (Windows Server 2003, IIS 6, ASP.NET 3.5 SP1) it just shows a 404 error.

I have read somewhere that I am meant to set up wildcard routing. How can I do this?

What other configuration changes needs to be done to make it work on my server?

回答1:

You will find some good information on Steve Sanderson’s blog post "Deploying ASP.NET MVC to IIS 6."



回答2:

On the server, open IIS:

  1. Right-click on the site/virtual directory, select properties
  2. Goto the Home Directory/Virtual Directory tab, click Configuration (near the bottom)
  3. Near the bottom again, click the insert button
  4. Enter C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
  5. Alternate: Enter C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll for ASP.NET 4.0
  6. Uncheck the "Verify that file exists" button, click Okay and close all the dialogues


回答3:

You can find the "official" discussion of wildcard mappings on TechNet here but I like Phil Haack's walkthrough that you can find here. Don't worry about the fact that it's a discussion of setting up ASP.NET MVC, just look for the section titled "IIS6 Extension-less URLs" - that set up applies to both MVC and using routing with a classic web form application.



回答4:

Under IIS 6 64 bit, make sure that the path under 4.) points to C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll



回答5:

Url rewriting can help you to solve the problem. I've implemented solution allowing to deploy MVC application at any IIS version even when virtual hosting is used. http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx