在Global.asax文件中创建Application_Error处理程序获取解析器错误

时间:2014-07-21 18:26:33

标签: c# sitecore global-asax sitecore7 application-error

我正在尝试将Application_Error方法添加到Global.asax文件中,但是我收到了一个解析器错误:

  '/'应用程序中的服务器错误。分析器错误说明:错误   在解析为此服务所需的资源时发生的   请求。请查看以下特定的解析错误详细信息和   适当修改你的源文件。

     

分析程序错误消息:应用程序文件中的内容不是   有效的。

我不明白为什么这种方法不起作用。任何帮助表示赞赏谢谢!

<%@Application Language='C#' Inherits="Sitecore.Web.Application" %>

using System.Configuration;

protection void Application_Error(object sender, EventArgs e)
{
  // Code that runs when an unhandled error occurs

  // Get the exception object.
  Exception exc = Server.GetLastError();

  // Handle HTTP errors
  if (exc.GetType() == typeof(HttpException))
  {
    // The Complete Error Handling Example generates
    // some errors using URLs with "NoCatch" in them;
    // ignore these here to simulate what would happen
    // if a global.asax handler were not implemented.
    if (exc.Message.Contains("NoCatch") || exc.Message.Contains("maxUrlLength"))
    return;

   //Redirect HTTP errors to HttpError page
   Server.Transfer("HttpErrorPage.aspx");
 }

 // For other kinds of errors give the user some information
 // but stay on the default page
 Response.Write("<h2>Global Page Error</h2>\n");
 Response.Write(
     "<p>" + exc.Message + "</p>\n");
 Response.Write("Return to the <a href='Default.aspx'>" +
  "Default Page</a>\n");

  // Log the exception and notify system operators
  ExceptionUtility.LogException(exc, "DefaultPage");
  ExceptionUtility.NotifySystemOps(exc);

  // Clear the error from the server
  Server.ClearError();
}

1 个答案:

答案 0 :(得分:0)

我认为您应该在.cs文件中添加代码。

此外,不接受保护。你的代码应该是这样的:

void Application_Error(object sender, EventArgs e)
{            
  //DoSomething();
}