我在 VS 2010 中使用 Framework 3.5 在 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
知道如何解决这个问题吗?
最佳答案
在 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 的推荐做法
关于c# - ASP.NET 路由在 IIS6 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860031/