Web.config配置customErrors mode为Off后依然不显示具体错误的可能原因。

  有时候我们的网站程序在本地运行没有问题,但在上传到远程服务器后则报错。这就需要我们了解具体错误,但IIS默认只显示统一的运行时错误,想要知道具体错误就需要配置Web.config中customErrors mode选项为Off。不过有时候customErrors标签是被包裹在注释中的,这种情况下怎么修改都不会起作用。

  如果是用编辑器打开Web.config,因为有代码颜色区分,很容易发现这个问题。

    <authentication mode="Windows"/>
    <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>

  但如果远程服务器上没有安装相关编辑器,或者只有FTP权限,只能使用记事本编辑时就不太容易察觉了。

    <authentication mode="Windows"/>
    <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>

  所以遇到这种问题时一定要仔细观察,排除各种可能性。

 

posted @ 2017-02-24 09:07  duduyx  阅读(5845)  评论(0编辑  收藏  举报