asp.net 中的错误跳转 customerrors 对html文件不起作用

阅读更多

一般对于asp.net的网站,都通过配置webconfig的customErrors一节来自定义错误页。

 

     

 

但是在网站中访问不存在的html页面或其他非aspx文件,不会乖乖的跳转到设定好的错误页去,而是显示默认的错误页面。

 

在网上搜索了一下:

之所以 aspx 有用,而 html 没用

是因为 iis 里的配置里设定了 *.aspx,*.config 等文件由 aspnet_isapi.dll 来处理

html 默认是不处理,直接发送给客户端

如果你希望 html 也由 aspnet_isapi.dll 处理,可以去设置

但是这样, html 的响应速度也会变慢 ,因为每个 html 都要多一道处理手续

很多网站用生成静态页,就是为了防止 aspx 的多的手续

  

设置方法:

进入管理工具里的“ Internet 信息服务 (IIS) 管理器”,在网站上按右键=》属性=》主目录=》配置=》点击映射里的添加,

可执行文件输入: c:/windows/microsoft.net/framework/v2.0.50727/aspnet_isapi.dll

扩展名输入: .html, 然后确定即可。

 

可以看出这种方式并不好,而且我在iis7中也没找到在哪更改。

再来看下iis7中网站的功能视图,可以看到有两个错误页的设置,一个是net错误页,一个是iis下面的错误页。

解决方法就是修改iis下面的错误页

asp.net 中的错误跳转 customerrors 对html文件不起作用 _第1张图片

双击“错误页”,以修改404错误页面为例

asp.net 中的错误跳转 customerrors 对html文件不起作用 _第2张图片

要是需要修改错误页显示的模式(和customErrors 里面的mode概念相同 ),可以在这里修改

asp.net 中的错误跳转 customerrors 对html文件不起作用 _第3张图片

你可能感兴趣的:(asp.net,定义错误页,customErrors,webconfig)