我有以下配置:
运行 Windows 7 Pro
运行本地 IIS 7.5 (用于Web开发)
编辑主机文件以便能够使用http://www.sitestepper.dev
inetpub / wwwroot / staplijst 的子文件夹中的网站构建
可以使用http://www.sitestepper.dev/staplijst/whatever-page.htm
我想在请求未知页面时调用http://www.sitestepper.dev/p.asp
页面。此技术在此网站的部署版本上运行良好(部署在运行IIS 6的Windows 2003服务器上 - 不确定7但是它是使用Windows 2003服务器部署的版本)。
我尝试过(在编辑自定义错误对话框中):
和
我在“默认网站”的属性中尝试了此操作,我在staplijst
级别尝试了此操作。
/staplijst
的值。我每次更改后重新启动默认网站。甚至停止/启动了Web服务。
但似乎没有任何效果,我不断收到“应用程序中的服务器错误”DEFAULT WEB SITE“',HTTP错误404.0错误。
我在这里错过了什么 - 可能是显而易见的事情,但是我没有看到它?
答案 0 :(得分:1)
我刚刚配置了以下内容来重现您的设置:
在web.config
文件中:
<configuration>
<system.webServer>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404"
prefixLanguageFilePath=""
path="/p.asp"
responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
</configuration>
在网站的根目录中,我有一个名为p.asp
的简单脚本执行Response.Write "Hello World"
。
如果我浏览到不存在的页面p.asp
被重定向到,我看到“Hello World”。
如果我在web.config
中使用以下内容:
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404"
prefixLanguageFilePath=""
path="http://www.sitestepper.dev/p.asp"
responseMode="Redirect" />
</httpErrors>
这会按预期重定向到p.asp
,我再次看到“Hello World”。
我唯一认为错误的是您说p.asp
生活在网站的根目录中:http://www.sitestepper.dev/p.asp
但ExecuteURL
和Redirect
响应模式路径中包含/staplijst
。
答案 1 :(得分:1)
要回答我自己的问题:我需要在相关网站的Error response
中将Custom error pages
设置为Edit feature settings...
才能生效。它被设置为“本地请求的详细错误和远程请求的自定义错误页面”。
我从来没有在以前版本的IIS中执行此操作,但可能在这些版本中暗示了这一点。或者主机设置www.sitestepper.dev可能导致页面始终表现为本地请求 - 无论如何,这已在IIS 7.5中发生了变化我确定。
我没有看到'Kev'的答案就搜索了这个解决方案。通常,如果使用提供的用户界面面板找到解决方案,我倾向于不直接编辑配置文件。
我会接受他的回答作为解决方案。