2016-05-10 4 views
1

Я хочу реализовать 500 страниц ошибок для нескольких сайтов/нескольких языков, я следую this article.500 Пользовательские страницы ошибок

Но Application_Error в Global.asax не стреляет. Вот мой код:

<%@ Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication" %> 
<script RunAt="server"> 

    private void Application_Error(object sender, EventArgs e) 
    { 
     var customErrorsSection = (System.Web.Configuration.CustomErrorsSection)ConfigurationManager.GetSection("system.web/customErrors"); 
     var lastException = Server.GetLastError(); 
     if (customErrorsSection.Mode != System.Web.Configuration.CustomErrorsMode.Off) 
     { 
      try 
      { 
       // Log.Error("There was an error in the application", lastException); 
       Server.ClearError(); 
       HttpContext.Current.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; 
       Server.Transfer(string.Format("/Error/{0}_500.html", GetSafeLanguage())); 
      } 
      catch 
      { 
      } 
     } 
    } 

    private string GetSafeLanguage() 
    { 
     try 
     { 
      return Sitecore.Context.Language.CultureInfo.TwoLetterISOLanguageName; 
     } 
     catch 
     { 
     } 
     return string.Empty; 
    } 
</script> 
+3

Я вижу эти потенциальные проблемы: 1) 'RunAt' должно быть написано ведомый как 'runat'; 2) Убедитесь, что класс 'WindsorApplication' наследуется от' System.Web.HttpApplication'; 3) Попробуйте поместить свои методы в класс, который у вас есть в Global.asax.cs, вместо того, чтобы иметь их внутри '

Смежные вопросы