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