我有一个在iis 6上运行的应用程序(带有应用程序池的文件夹),我试图设置自定义错误页面。我在Web配置中有一个自定义错误的元素,但它从未出现过。如果我进入IIS并查看应用程序的属性,我可以设置自定义错误指向oops.html。似乎IIS没有使用我的web.config中的设置来处理错误。
这就是我所拥有的 在web.config中
<system.web>
...
<customErrors mode="On" defaultRedirect="/oops.html" redirectMode="ResponseRewrite" />
...
</system.web>
<system.webServer>
...
<httpErrors existingResponse="PassThrough" />
...
<system.webServer>
应用程序的地址如下: www.mysite.com/myappfolder /
网络配置位于: www.mysite.com/myappfolder /
和oops.html位于: www.mysite.com/myappfolder/oops.html
如果它试图去: www.mysite.com/myappfolder/NothingReal 将抛出404,只有当我配置IIS重定向到oops.html时才会看到该页面。
指定客户错误目标的规则是什么?我应该删除“/”使用〜/ myappfolder / oops.html的内容吗?如何绕过IIS 6错误处理并将所有错误重定向到我的页面?
答案 0 :(得分:0)
您是否尝试过使用~/oops.html
?
答案 1 :(得分:0)
web.config中的customErrors
元素仅适用于ASP.NET运行时监视的资源。默认情况下,静态资源(如图像和HTML文件)由IIS处理,并且永远不会传递给ASP.NET运行时。
答案 2 :(得分:0)
所以这是问题的组合。首先是服务器上有两个级别的错误处理。
第一级位于IIS中。当IIS遇到错误时,它将使用其错误页面来中继或模糊问题。
第二级是在ASP运行时。在页面中有错误,然后脚本可以委托给“oops”页面,因为配置了web配置。
如果asp不重定向到“oops”页面或该页面的位置不正确,则IIS会处理错误。在不重定向500级别的情况下,将抛出错误。如果“oops”页面位置错误,则会抛出404。
我的问题在于处理方式,IIS和我的网络配置指向同一页面,使调试更具挑战性。
最后我解决了我的问题,第一个问题是路径是相对于处理重定向的webconfig而且〜/被错误地使用了。