ASP.NET路由在IIS6中不起作用

时间:2011-07-28 13:49:33

标签: c# asp.net iis-6 routes

我使用Framework 3.5在VS 2010中的asp.net c#中构建了一个小型Web应用程序。 我需要在带有IIS6的Windows 2003服务器上部署它。

它使用路由(System.Web.Routing),当我运行Visual Studio时工作正常。但是现在在部署到IIS6服务器之后,它给出了404错误。如果我键入精确的页面路径,它可以正常工作。

http://localhost.local/forms/user/login.aspx一样工作 但我的自定义路线http://localhost.local/user/login给出了404错误

我已经找到了Installing Wildcard Application Mappings& Running ASP.NET MVC Under IIS 6.0 and IIS 7.0 Classic Mode : Solution to Routing Problem

有任何线索如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

在IIS中,.net作为IIS扩展运行。这意味着必须有一些关于IIS可以识别的请求,知道它需要将请求发送到.Net。这通常采用文件扩展名的形式,即.aspx

所以路径http://localhost/forms/user/login.aspx因.aspx扩展名

而起作用

路径http://localhost/user/login本身不会传递给.NET执行,除非路径存在并且文件夹中有default.aspx。

IIS7通过将.net提升为一个完整的部分 - 集成管道来解决这个问题。

您可以使用通配符映射或使用映射到.net的扩展来使用它 - 这是IIS 6上推荐用于MVC的内容

答案 1 :(得分:2)

我已经找到了http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5c5ae5e0-f4f9-44b0-a743-f4c3a5ff68ec.mspx?mfr=true& http://www.tugberkugurlu.com/archive/running-asp-net-mvc-under-iis-6-0-and-iis-7-0-classic-mode---solution-to-routing-problem但它仍无效。

遇到问题,我没有正确地重新启动IIS6。我只是重新启动了网站。以上链接显示了如何解决此问题的正确信息。