我得到一个错误,每次我上传我的webapp到提供商。由于使用了customErrors模式,我所看到的是默认的“运行时错误”消息,指示我关闭customErrors以查看有关错误的更多信息。

我恼怒地织好了网。配置如下所示:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

然而,我所得到的只是一个愚蠢的远程错误页面,上面没有任何有用的信息。 我还能做什么来关闭customErrors ?!


当前回答

我尝试了这里描述的大部分方法。我用的是VWD和默认网页。配置文件包含:

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

我将mode="RemoteOnly"更改为mode="Off"。还是不高兴。 然后我使用IIS管理器,属性,ASP。Net选项卡,编辑配置,然后选择CustomeErrors选项卡。仍然显示RemoteOnly。我将其更改为Off,最后我可以看到详细的错误消息。

当我浏览网页的时候。我看到在system.web中有两个CustomErrors节点;我刚刚注意到第二个条目(我正在更改的条目是在注释中)。所以尽量不要用记事本来检查网页。远程服务器上的配置。

但是,如果你使用IIS编辑配置的东西,它会抱怨web.config中的错误。然后你就可以排除所有关于"你的web.config中是否有XML语法错误"的答案

其他回答

如果您正在进行配置转换,您可能还需要从相关web中删除以下行。配置文件。

<compilation xdt:Transform="RemoveAttributes(debug)" />

我刚刚处理过类似的问题。在我的情况下,默认的网站asp.net版本是1.1,而我试图启动一个2.0的web应用程序。错误是非常微不足道的,但它不是立即清楚为什么自定义错误不会消失,运行时从来没有写到事件日志。显而易见的修正是匹配Asp中的版本。IIS的Net选项卡。

您还可以尝试在服务器机器上的浏览器中打开该网站。我不怎么使用ASP。但我记得自定义错误的东西有一个设置,只显示完整的错误文本在服务器上,作为一种安全措施。

在这里尝试了所有的答案,结果是我的Application_Error方法有这样的:

Server.ClearError();
Response.Redirect("/Home/Error");

删除这些线和设置解决了这个问题。(客户端仍然被重定向到错误页面customErrors="On")。

还要确保你在编辑网页。配置而不是网站。配置,正如我所做的。