我一直在阅读有关在页面和应用程序级别捕获.Net错误的内容,并且无法决定我想要做什么的最佳套件。 我想要的只是一个基本的重定向页面,告诉用户发生了错误,无论错误是什么,或者发生了什么页面(也会有一些日志记录)。 这应该是应用程序级别吗?
感谢
答案 0 :(得分:1)
您可以将customErrors
属性添加到web.config中。它会在出错时重定向到指定的页面:
<system.web>
<customErrors defaultRedirect="~/ErrorGeneric.html" mode="RemoteOnly">
<error statusCode="500" redirect="~/Error500.html"/>
<error statusCode="404" redirect="~/Error404.html"/>
</customErrors>
<system.web>
此外,配置一个日志框架,可以帮助您存储错误信息以供以后分析。以下是一些框架:ELMAH,log4net,CuttingEdge.Logging。我建议你使用其中一个框架,而不是在Application_Error
事件中摆弄并自己编写日志功能。
答案 1 :(得分:0)
请参阅Internet Information Server(IIS 7)中的.NET错误页面功能。在这里,您可以为不同的HTTP错误添加不同的错误页面。使用您错误http://msdn.microsoft.com/en-us/library/bazc3hww.aspx
所需的HTTP错误代码抛出HTTP异常答案 2 :(得分:0)
是的,您可以通过捕获Global.asax中的Application_Error事件来完成此操作。这是MSDN的一个例子:
void Application_Error(object sender, EventArgs e)
{
// Get the exception object.
Exception exc = Server.GetLastError();
// Handle HTTP errors
if (exc.GetType() == typeof(HttpException))
{
//Redirect HTTP errors to HttpError page
Server.Transfer("HttpErrorPage.aspx");
}
// For other kinds of errors give the user some information
// Log the exception and notify system operators
// Clear the error from the server
Server.ClearError();
}
有关完整示例,请参阅this page,以及有关此主题的一般建议。