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

标签 c# asp.net iis-6 routes

我在 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/

相关文章:

.net - Session-in-view 和 TransactionScope

asp.net - SEO 的重复页面内容

php - IIS6 : PHP Sessions

c# - 如何根据字符串动态调用类?

ASP.net 同源策略 header 不起作用

asp.net - 尝试使用 Visual Studio 2010 和 AJAX 扩展的问题

c# - 我的 ASP.NET App_code 更改未被提取(或被缓存??)

c# - 将 Razor Web App 作为中间件插入 Web Api 元素时,不会加载 css

c# - 如何在 C# 中通过指纹查找证书

c# - 我应该如何处理 Nancy 的身份验证?