错误提示:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
运行时错误
说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。
详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。
<customErrors>节点用于定义一些自定义错误信息的信息。此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误。Mode属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下:
Mode
说明
On 表示在本地和远程用户都会看到自定义错误信息。
Off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
RemoteOnly 表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
这里有必要说明一下本地用户和远程用户的概念。当我们访问asp.net应用程时所使用的机器和发布asp.net应用程序所使用的机器为同一台机器时称为本地用户,反之则称之为远程用户。在开发调试阶段为了便于查找错误Mode属性建议设置为Off,而在部署阶段应将Mode属性设置为On或者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。
<error>子节点
根据服务器的HTTP错误状态代码而重定向到我们自定义的错误页面,使<error>子节点下的配置生效,必须将<customErrors>节点节点的Mode属性设置为“On”。
<error statusCode="403" redirect="403.htm" />
<error statusCode="404" redirect="404.htm" />
测试抛出异常:
///抛出异常 public ActionResult Top() { throw new Exception("发生异常..."); //return View(); } ///web.config中节点<customErrors> <customErrors mode="On" defaultRedirect="/Shared/Error"> </customErrors>
将mode设置为On,本地和远程用户都会看到自定义错误信息,如下图
如果将mode设置为Off,禁用自定义错误信息,本地和远程用户都会看到详细的错误信息,在开发过程中对查找异常很用帮助
如果将mode设置为RemoteOnly, 本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
因此在开发阶段应将mode设置为Off,待正式运行时就应将mode设置为On或者RemoteOnly,这样避免了将错误信息直接抛给用户,也防止恶意截获异常.