找回密码
 注册
Simdroid-非首页
查看: 74|回复: 0

[08.其他] web.config中节点配置的实战应用

[复制链接]
发表于 2019-2-27 10:39:16 | 显示全部楼层 |阅读模式 来自 江苏南京
本帖最后由 天洑软件 于 2019-3-27 17:47 编辑

当我们完成了web开发,并将站点部署到服务器上以后,难免会因为各种原因,碰到网站报错的问题。而当我们打开服务器链接时,结果一般是这样的:



而打开本地链接是这样的:



这个显示结果,就是web.config中<customErrors>节点配置造成的。


<customErrors>节点用于定义一些自定义错误信息的信息。此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误。Mode属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下:


Mode 说明
On 表示在本地和远程用户都会看到自定义错误信息。
Off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
RemoteOnly 这个是缺省值,表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。

这里有必要说明一下本地用户和远程用户的概念。当我们访问asp.net应用程时所使用的机器和发布asp.net应用程序所使用的机器为同一台机器时称为本地用户,反之则称之为远程用户。所以在默认 Mode=” RemoteOnly”时,我们在服务器打开服务器链接,也会看到以下页面:


在开发调试阶段为了便于查找错误Mode属性建议设置为Off,而在部署阶段应将Mode属性设置为On或者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。
我们先配置<customErrors>如下:
<customErrors mode="RemoteOnly" defaultRedirect="ErrorPage.html" />
并在根目录下添加HTML页面 ErrorPage.html:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    This is ErrorPage!
</body>
</html>

这时如果本地运行报错,将看到以下页面:



远程访问时看到的效果:



如果我们将customErrors的Mode属性设置为“On”本地运行和远程访问都会看到如下效果:



如果将customErrors的Mode属性设置为“Off”本地运行和远程访问都会看到如下效果:



另外,在<customErrors>节点下还包含有<error>子节点,这个节点主要是根据服务器的HTTP错误状态代码而重定向到我们自定义的错误页面,注意要使<error>子节点下的配置生效,必须将<customErrors>节点节点的Mode属性设置为“On”。

例子如下:

<customErrors mode="On" defaultRedirect=" ErrorPage.html ">

     <error statusCode="403" redirect="403.htm" />

     <error statusCode="404" redirect="404.htm" />

</customErrors>


在上面的配置中如果用户访问的页面不存在就会跳转到404.htm页面,如果用户没有权限访问请求的页面则会跳转到403.htm页面,403.htm和404.htm页面都是我们自己添加的页面,我们可以在页面中给出友好的错误提示。



关注公众号“天洑CAE技术源”了解更多相关资讯


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-20 14:54 , Processed in 0.028664 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表