【发布时间】:2014-02-19 16:57:16
【问题描述】:
参考KB306355: How to create custom error reporting pages in ASP.NET by using Visual C# .NET
我了解如何创建自定义错误页面。有很多如何做到这一点的例子,就像上面的链接一样。
我找到的示例都没有显示我所追求的。
我有一个使用母版页的 Web 应用程序。
在我的母版页中,我有一个标签控件,用于显示所有页面都会看到的错误:
<h4 id="bannerError"><asp:Label ID="lblError" runat="server" /></h4>
在该母版页后面的代码中,我有这个:
public void Page_Error(object sender, EventArgs e) {
var err = Server.GetLastError().GetBaseException();
ErrorMessage = String.Format("URL {0}: {1} Error: {2}", Request.Url, err.GetType(), err.Message);
Server.ClearError();
}
public string ErrorMessage {
get { return lblError.Text; }
set {
LogError(value);
lblError.Text = value;
}
}
ErrorMessage 是一个属性。我的其他页面可以轻松访问它,并且我可以轻松编辑掉有关将错误写入服务器数据库的部分。
Web.config页面配置(sn-p):
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<customErrors defaultRedirect="Default.aspx" mode="On">
<error statusCode="403" redirect="Default.aspx" />
<error statusCode="404" redirect="Default.aspx" />
</customErrors>
</system.web>
</configuration>
我将如何编辑我的文件,以便在我的应用程序中的任何页面(源自母版页)上发生的任何错误,只需通过母版页显示此基本信息,而不是将页面重定向到另一个 URL?
【问题讨论】:
-
我知道这不是问题所在,但另一种方法是在
global.asaxApplication_Error方法中处理这个问题。 msdn.microsoft.com/en-us/library/24395wz3(v=vs.100).aspx -
感谢@EladLachmi。我相信这就是我现在正在做的事情。我一直在寻找一种包含在我的母版页中的更优雅的方法。
-
我们有一个非常大的网站,其中包含许多母版页,我们发现记录所有异常/针对我们应用程序中抛出的所有不同类型的异常重定向到错误页面的唯一一致方法就是这样。跨度>
标签: c# asp.net visual-studio-2010 master-pages