我使用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
有任何线索如何解决这个问题?
答案 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。我只是重新启动了网站。以上链接显示了如何解决此问题的正确信息。