背景
调试MVC项目时,在VS中本地运行没有任何问题,但是当在IIS部署后,访问出错:错误提示只有一句话“抱歉,处理您的请求时出错。”也没有具体的错误信息,也没有黄页错误。后来发现这个错误页面原来是新建MVC项目中默认的错误页面。
解决
既然我们知道了这是默认的错误页面,我们想要获得详细的错误信息就需要在Web.config配置文件中将错误信息打开。
在<system.web></system.web>中间添加<customErrors mode=”Off”> 。
<customErrors> 节点
Web.config中的<customErrors> 节点用来自定义一些错误信息。这个节点有mode(必选属性)和defaultRedirect(可选属性)两个属性。
mode
mode属性分别有三个可能值,分别为On、Off、RemoteOnly
On :表示在本地和远程用户都会看到自定义错误信息。
Off :禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
RemoteOnly :表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
defaultRedirect
defaultRedirect属性表示应用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误。
<error> 节点
<customErrors> 节点下除了两个属性外,还包含有<error> 节点,这个节点主要是用于根据服务器的HTTP错误状态代码而重定向到我们自定义的错误页面,注意要使<error>子节点下的配置生效,必须将<customErrors> 节点的Mode属性设置为“On”。
例如:我们常见的404错误,如果用户访问的页面不存在就跳转到404.html页面
<customErrors mode="On" >
<error statusCode="404" redirect="404.html" />;
</customErrors>

当在IIS上部署MVC项目遇到'抱歉,处理您的请求时出错。'的错误提示时,可以通过修改Web.config文件中的<customErrors>节点来获取详细错误信息。设置mode为'Off',可以关闭自定义错误,显示具体错误详情;mode为'RemoteOnly'则仅远程用户看到自定义错误,而本地用户看到详细信息。此外,defaultRedirect属性可定义错误发生时的重定向页面,<error>节点可以根据HTTP错误代码定义不同错误的自定义页面。

1061

被折叠的 条评论
为什么被折叠?



