我对Web.Config有一个非常重要的问题,我需要看到我的页面的错误并在asp.net web表单和web配置中解决它,但是当发生错误时,我看到另一个错误,我看到了这个消息:
customErrors模式为Off或On或RemoteOnly,
我将此属性设置为Off,但不显示错误并再次说出请将属性设置为On Your CustomError。
当我将模式设置为开时,请说将customErrors模式设置为On Again。
答案 0 :(得分:16)
如果您遇到配置问题,请确保您的配置问题 设置未被覆盖。
在这种情况下,您的服务器可能具有覆盖应用程序设置并禁用跟踪输出,自定义错误和调试功能的配置<deployment retail="true" />
。
将值更改为“false”
<deployment retail="false" />
<强> MSDN Link 强>
答案 1 :(得分:4)
确保将customErrors标记嵌套在<system.web>
标记内的某处,如下所示:
<system.web>
<customErrors mode="Off" />
</system.web>
根据您的描述,它很可能已被您放置在那里或自动生成另一种方式。还尝试设置为On并重新启动应用程序池。您可以通过添加中断返回来简单地修改web.config
文件,甚至只需点击空格键即可,只要您进行了更改即可。现在重新上传,确保这是您第二次将customErrors模式设置为On。希望您现在可以查看自定义错误页面。
如果您仍然遇到问题,并且可以从IIS管理器访问您的网站,请尝试在功能视图中编辑.NET错误页面。这也将做同样的事情,提供您的自定义错误页面在web.config
文件访问的正确目录中。
答案 2 :(得分:4)
首先,您可以将CustomErrors模式从“RemoteOnly”设置为“off”
<customErrors mode="Off"></customErrors>
其次,您可以检查global.asax.may,您可以创建Response.Redirect,与customError中的defaultRedirect相同。您可以在ASP.NET customErrors with mode=remoteOnly and global.asax handling exceptions
查看更多详细信息和最后一个,也许你在webconfig中创建两个 system.web。您的配置文件中应该只有一个。请再次检查您的webconfig。
并且不要忘记<compilation debug="true"/>
答案 3 :(得分:3)
要显示调试错误而不显示自定义错误页面,您不需要defaultRedirect
,只需输出调试/异常信息即可:
<system.web>
<customErrors mode="On" />
</system.web>
注意:确保On
以大写 O 开头。通过更改web.config,这应该(默认情况下)回收您的应用程序池并立即获取。
答案 4 :(得分:3)
以下是如何在自定义页面上显示例外的示例代码。
首先使用按钮创建Default.aspx:
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Throw Error" />
为按钮点击事件添加以下代码:
protected void Button1_Click(object sender, EventArgs e)
{
throw new Exception("Sample Exception on my Page");
}
第二次使用label:
创建ErrorPage.aspx <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);
}
}
最后在web.config中进行以下配置:
<system.web> <customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" redirectMode="ResponseRewrite" /> </system.web>
编译并从Default.aspx开始。点击您的按钮,错误将显示在您的自定义页面上。
快乐的编码!
答案 5 :(得分:1)
我只是想在这里发表评论,但我没有足够的评论意见,我们能否看到产生错误的实际页面并查看整个web.config?你可以模糊连接字符串等,以免泄露任何密码。
但是我看到了,
我认为您所说的是在本地计算机上使用IIS Express调试。 我会完成IIS Express,或ctrl + F5页面查看该网站是否没有被缓存。
将自定义错误设置为Off将显示调试消息 - 注意Off中的“O”必须用f的小写字母大写。看起来你有这个,但值得一提
自定义错误关闭 - 指定禁用自定义错误。这样可以显示详细错误。
答案 6 :(得分:1)
我从未见过它说过设置为On。我已经看到它说set customeErrors为off会给你详细的错误。将其设置为关闭,然后将您看到的实际错误消息添加到此帖子。你肯定没有得到像404错误那样的不同消息吗?
答案 7 :(得分:1)
从我所看到的,您没有<customErrors mode="Off" />
作为<system.web>
节点中的第一个节点。
如果我猜测,您在<compilation targetFramework="x.x">
节点内有customErrors节点。
您可能将应用程序池设置为.NET框架的另一个版本而不是编写应用程序。确保<customErrors mode="Off" />
节点是<system.web>
节点内的第一个节点,然后很可能给你详细的错误消息。
答案 8 :(得分:1)
删除此行对我有用!
<customError />
答案 9 :(得分:1)
许多托管公司实际上都是通过他们的web.config文件覆盖设置。您通常可以在Web主机的网站仪表板中设置这些具体属性。
如果您告诉我们您正在使用的具体网络托管,我们应该能够更好地协助具体步骤。
答案 10 :(得分:-1)
将模式设置为On,保存web.config,然后刷新或重新启动IIS,并确保保存后模式仍设置为On。再次浏览,它应该显示错误...