IIS 6 上的 ASP.NET 路由

Posted

技术标签:

【中文标题】IIS 6 上的 ASP.NET 路由【英文标题】:ASP.NET routing on IIS 6 【发布时间】:2010-10-23 03:35:50 【问题描述】:

根据 Mike Ormond 的示例“使用独立于 MVC 的 ASP.NET 路由”,我使用 ASP.NET 路由创建了一个基本站点。这在我运行内置网络服务器的本地机器上运行良好。

但是,当我将它部署到我的服务器(Windows Server 2003、IIS 6、ASP.NET 3.5 SP1)时,它只会显示 404 错误。

我在某处读到我打算设置通配符路由。我该怎么做?

需要进行哪些其他配置更改才能使其在我的服务器上运行?

【问题讨论】:

【参考方案1】:

您可以在 Steve Sanderson 的博文“Deploying ASP.NET MVC to IIS 6”中找到一些有用的信息。

【讨论】:

【参考方案2】:

在服务器上,打开 IIS:

    右键单击站点/虚拟目录,选择属性 转到主目录/虚拟目录选项卡,单击配置(靠近底部) 再次靠近底部,点击插入按钮 输入C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 替代:对于 ASP.NET 4.0 输入 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 取消选中“验证该文件是否存在”按钮,单击“确定”并关闭所有对话框

【讨论】:

对于信息,用户报告(现已删除)他的案例中缺少“插入”按钮。这当然不是你的错! 使用 v2 版本的 dll 而不是 v4 的任何原因?【参考方案3】:

您可以在 TechNet here 上找到有关通配符映射的“官方”讨论,但我喜欢 Phil Haack 的演练,您可以在 find here 上找到。不要担心这是关于设置 ASP.NET MVC 的讨论,只需查找标题为“IIS6 无扩展 URL”的部分 - 该设置适用于 MVC 和使用经典 web form 应用程序的路由。

【讨论】:

【参考方案4】:

在IIS 6 64位下,确保4.)下的路径指向 C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll

【讨论】:

【参考方案5】:

网址重写可以帮助您解决问题。我已经实现了允许在任何 IIS 版本上部署 MVC 应用程序的解决方案,即使使用虚拟主机也是如此。 http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx

【讨论】:

以上是关于IIS 6 上的 ASP.NET 路由的主要内容,如果未能解决你的问题,请参考以下文章

win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NE

ASP.NE网站发布注意事项

跟我学ASP.NET MVC之十一:URL路由

将所有请求重定向到 IIS6 上的 ASP.NET MVC

iis6 上的 Asp.net mvc 4:“找不到页面”

在 IIS 上使用 .NET Core 运行 ASP.NET 5 (MVC 6)