问题
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:
- Right-click on the site/virtual directory, select properties
- Goto the Home Directory/Virtual Directory tab, click Configuration (near the bottom)
- Near the bottom again, click the insert button
- Enter C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
- Alternate: Enter C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll for ASP.NET 4.0
- 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
来源:https://stackoverflow.com/questions/811871/asp-net-routing-on-iis-6