我正在研究IIS6,ASP.NET,VS2008.该网站使用自定义错误处理程序来捕获404错误并提供备用页面.当提供以下形式的网址时:
HTTP:// SRV /赤红/用品/指数
一切都很完美.但形式的网址:
HTTP://srv/crimson/blog.aspx
如果blog.aspx不存在,则失败并显示以下消息:
'/ Crimson'应用程序中的服务器错误.描述:HTTP 404 ......
当我尝试调试时,我的404处理程序中没有任何断点被命中.所以似乎有些事情正在赶上请求.哪里?以及如何让它将请求传递给我的处理程序?
编辑 感谢那些回答的人,但这些想法都没有奏效.我决定以另一种方式解决这个问题.
你可能想试试这个:
在IIS6中:
打开您网站的"属性"
转到"主目录"选项卡
点击"配置"
寻找扩展名".aspx"
点击"编辑"
选中"验证文件是否存在"的复选框
编辑
那么这个:http: //msdn.microsoft.com/en-us/library/h0hfz6fc(VS.80).aspx
由于"RemoteOnly"指定仅向远程客户端显示自定义错误,并且向本地主机显示ASP.NET错误.
嗯,Assaf是对的,但为了补充他的答案,我需要发布一些代码.
是的,Assaf确实意味着ASP.NET提供了自己的错误处理,通过web.config配置.您可以通过IIS Admin管理单元或直接在web.config文件中进行管理.
在
您可以为每个HTTP错误代码配置不同的页面,或者让默认重定向处理它们.
你会发现,你确实需要在设置了这些错误页面都在IIS自定义错误和ASP.NET配置,否则你会在这种情况下结束-一些网页去你的404,和其他人使用默认您没有自定义.
您还应确保自定义404页面实际返回404标头,以确保搜索引擎等正确对待它.
Response.StatusCode = 404; Response.StatusDescription = "Not found";