当我将我的.NET 2.0网站放在IIS 6上时,我遇到了问题。我使用了UrlMapping来重定向一些旧网址。当我在VS本地服务器端口上使用它时工作正常但是当我将它部署到IIS 6时,它会发出404 Page not found错误。
我发现在一些论坛中他们讨论的是使用通配符映射,但是它们都没有为我提供如何实现这一目标的良好解释。除此之外,在IIS级别上进行此类修改的安全风险是什么(如果有的话?)
提前致谢, 干杯:)
答案 0 :(得分:1)
在目标服务器上破解 IIS 。
转到 Web应用程序,右键单击并选择属性
选择虚拟目录标签
点击应用程序设置
下的配置按钮在通配符应用程序地图部分中,添加以下内容:
c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
确保取消选中文件存在。
答案 1 :(得分:0)
可能导致您的问题的是,在IIS上的ASP.NET映射中,有一个复选框“检查该文件是否存在”取消选中此项,您应该没问题。
编辑此内容没有真正的风险。
http://forums.asp.net/p/890825/1017645.aspx
http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/
打开网站上的属性,转到“主目录”选项卡,然后单击“配置”。
然后在那里找到.NET映射,或者创建一个外卡映射......并确保不检查“检查文件存在”的选项。
答案 2 :(得分:-1)
我相信这是因为当您的URL没有扩展名(例如.aspx)时,IIS6无法将请求移交给ASP.NET。在以下示例设置
中<add url="~/NewUrl" mappedUrl="~/Default.aspx?UrlId=12345" />
当您尝试在IIS6上访问http://yousite.name/NewUrl时,您将获得404。以下是Phil Haack博客中有关如何使用通配符映射克服此问题的帖子:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx
P.S。我知道,这篇文章是关于ASP.NET MVC的,但我认为它也可能对你的场景有所帮助。