我使用web api的空模板(使用VS 2013)为我们的应用程序开发服务组件。我正在尝试使用自定义错误标记基于web.config文件中的值设置为web api设置错误详细信息策略。默认情况下,web.config文件中不存在自定义错误标记。我使用下面提到的代码在WebApiConfig类的Register方法中设置错误详细信息策略。
var customErrors =
(CustomErrorsSection)ConfigurationManager.GetSection("system.web/customErrors");
if (customErrors != null)
{
switch (customErrors.Mode)
{
case CustomErrorsMode.RemoteOnly:
{
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.LocalOnly;
break;
}
case CustomErrorsMode.On:
{
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Never;
break;
}
case CustomErrorsMode.Off:
{
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
break;
}
default:
{
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Default;
break;
}
}
在调试代码时,我注意到即使web.config文件中的system.web部分下没有customErrors标记,变量customErrors也会返回一个设置为mode = RemoteOnly的值
任何人都可以帮助我知道我遗失了什么吗?
答案 0 :(得分:1)
the variable customErrors is returning a value set up with mode= RemoteOnly
您获取此值是因为这是自定义错误元素的默认值。
even though there is no customErrors tag under the system.web section in the web.config file
是的,即使项目中没有配置文件,但总是在Machine.config中指定设置。
在.NET Framework 1.0和1.1版的Machine.config文件中配置以下默认customErrors元素。
<customErrors mode="RemoteOnly" />
请参阅:MSDN文章