Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Web.config自定义错误模式冲突_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Web Config - Fatal编程技术网

Asp.net Web.config自定义错误模式冲突

Asp.net Web.config自定义错误模式冲突,asp.net,asp.net-mvc,asp.net-mvc-3,web-config,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Web Config,我的Web.Config有一个非常重要的问题,我需要查看页面的错误并在asp.net Web表单和Web配置中解决它,但是当出现错误时,我看到另一个错误,我看到以下消息: customErrors模式设置为Off或On或RemoteOnly 我将此属性设置为Off,但不显示错误,并再次说请在CustomError中将属性设置为 当我将模式设置为On时,请再次将customErrors模式设置为On 将模式设置为打开,保存web.config,然后刷新或重新启动IIS,并确保保存后模式仍设置

我的Web.Config有一个非常重要的问题,我需要查看页面的错误并在asp.net Web表单和Web配置中解决它,但是当出现错误时,我看到另一个错误,我看到以下消息:

customErrors模式设置为Off或On或RemoteOnly

我将此属性设置为Off,但不显示错误,并再次说请在CustomError中将属性设置为

当我将模式设置为On时,请再次将customErrors模式设置为On


将模式设置为打开,保存web.config,然后刷新或重新启动IIS,并确保保存后模式仍设置为打开。再次浏览它,它会显示错误…

请确保将customErrors标记嵌套在
标记中的某个位置,如下所示:

<system.web>
<customErrors mode="Off" />
</system.web>

根据你的描述,它很可能是你放在那里的,或者是以另一种方式自动生成的。同时尝试将设置为On并重新启动应用程序池。您可以通过简单地修改
web.config
文件来实现这一点,方法是添加一个中断返回,甚至只需按空格键,只要您做了更改。现在重新上传,确保这是您第二次将customErrors模式设置为On。希望您现在可以查看自定义错误页面

如果您仍然有问题,并且可以从IIS管理器访问您的网站,请尝试在“功能”视图中编辑.NET错误页。如果您的自定义错误页面位于
web.config
文件要访问的正确目录中,那么这也会做同样的事情

当您遇到配置问题时,请确保 设置不会被覆盖

在这种情况下,服务器可能具有覆盖应用程序设置并禁用跟踪输出、自定义错误和调试功能的配置

将值更改为“false”



我只是想在这里发表评论,但我没有足够的观点发表评论,我们可以看到产生错误的实际页面并查看整个web.config吗?您可以模糊连接字符串等,以免泄露任何密码

但就我所见

从您所说的,我认为您正在本地计算机上使用IIS Express调试。 我会使用IIS Express或ctrl+F5组合键查看页面是否没有缓存该站点

将自定义错误设置为Off将显示调试消息-注意Off中的“O”必须大写,并带有f的小写字母。看起来你有这个,但值得一提


自定义错误关闭-指定禁用自定义错误。这允许显示详细的错误。

我从未见过它说设置为On。我看到它说将customeErrors设置为off,这会给您带来详细的错误。将其设置为off,然后将您看到的实际错误消息添加到此帖子。您确定没有收到404错误之类的不同消息吗?

若要显示调试错误而不显示自定义错误页面,您不需要
默认重定向
,只需执行此操作即可输出调试/异常信息:

<system.web>
    <customErrors mode="On" />
</system.web>


注意:确保
On
以大写字母O开头。通过更改web.config,这应该(默认情况下)回收您的应用程序池,并立即获取。

以下是如何在自定义页面上显示异常的示例代码

首先使用按钮创建Default.aspx:

    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Throw Error" />
第二步创建带有标签的ErrorPage.aspx:

    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
最后,将以下配置放在web.config中:


编译并从Default.aspx开始。单击按钮,错误将显示在自定义页面上


快乐编码

据我所见,您没有将
作为
节点中的第一个节点

如果让我猜一下,您在
节点中有customErrors节点


您可能将applicationpool设置为.NET framework的另一个版本,而不是应用程序的编写版本。确保
节点是
节点中的第一个节点,那么它很可能会向您提供详细的错误消息。

删除这一行对我来说很有用

<customError  />

许多托管公司实际上会覆盖他们的web.config文件中的设置。您通常可以在web主机的网站仪表板中设置这些具体属性


如果您告诉我们您正在使用的具体web主机,我们应该能够更好地帮助您执行具体步骤。

首先,您可以将CustomErrors模式从“RemoteOnly”设置为“off”

第二,您可以检查global.asax。也许您可以创建响应。重定向与customError中的defaultRedirect相同。您可以在这里查看更多详细信息

最后,您可以在您的网络配置中创建两个system.web。您的配置文件中应该只有一个。请再次检查您的网络配置。
不要忘了自定义错误,这意味着您正在为错误创建自己的页面。如404文件未找到等。当您将其设置为关闭时,会向每个人显示错误。如果它是远程的,那么在同一台机器上,只有在你抛出错误时才能看到错误。或者您在全局文件应用程序\u Error方法中编写了一些内容?谢谢您的评论,我知道,但我希望看到调试时出现的错误,不要显示错误。如果您可以显示web.config文件的当前设置,这将非常有帮助。它似乎忽略了customerror设置,这可能意味着您的web.config中出现了一个不相关的错误。检查文件格式是否正确,然后尝试注释部分,直到其正常工作。
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    protected void Page_Load(object sender, EventArgs e)
    {
        Exception ex = Server.GetLastError();
        if (ex != null && ex.InnerException != null)
        {
            Label1.Text = string.Format("An error occured: {0}", ex.InnerException.Message);
        }
    }
    <system.web>
      <customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" redirectMode="ResponseRewrite" />
    </system.web>
<customError  />