我们通常在Global.asax中捕获未处理的异常,然后我们重定向到一个友好的友好错误页面.这对于Live环境来说很好,但在我们的开发环境中,我们想检查CustomErrors是否为Off,如果是,则抛出丑陋的错误.
有没有一种简单的方法来检查CustomErrors是否通过代码关闭?
kap*_*tan 35
我建议使用以下属性:
HttpContext.Current.IsCustomErrorEnabled
Run Code Online (Sandbox Code Playgroud)
正如这里提到的,IsCustomErrorEnabled会考虑更多像RemoteOnly这样的东西:
IsCustomErrorEnabled属性组合了三个值,以告诉您是否为特定请求启用了自定义错误.这不像读取web.config文件来检查该部分那么简单.在幕后还有更多内容可以真正确定是否启用了自定义错误.
该属性查看这三个值:
web.config的<deployment>部分的零售属性.在将应用程序部署到生产服务器时,这是一个有用的属性.这会覆盖自定义错误的任何其他设置.
web.config的<customErrors>部分的mode属性.此设置指示是否根本启用自定义错误,如果是,则指示是否仅为远程请求启用它们.
HttpRequest对象的IsLocal属性.如果仅为远程请求启用了自定义错误,则需要知道该请求是否来自远程计算机.
djd*_*d87 12
通过,通过WebConfigurationManager:
System.Configuration.Configuration configuration =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/");
System.Web.Configuration.CustomErrorsSection section =
(CustomErrorsSection)configuration.GetSection("system.web/customErrors");
Run Code Online (Sandbox Code Playgroud)
获得该部分后,您可以按如下方式检查模式是打开还是关闭:
CustomErrorsMode mode = section.Mode;
if (mode == CustomErrorsMode.Off)
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2968 次 |
| 最近记录: |