2012-08-24 8 views
9

Özel hatalarınız varsa, web yapılandırmasında RemoteOnly olarak ayarlanmış demektir - bu, MVC'nin global.asax - Application_Error numaralı uygulama düzeyi hatası olayının hata yapmaması anlamına mı geliyor?Genel hatalar açıksa global.asax Application_Error olayı çalışmaz mı?

Uygulamamda belirli bir hata oluştuğunda ve siteyi uzaktan görüntülediğimde hiçbir hata kaydedilmediğini fark ettim. Ancak, sunucuya uygulamada erişirken ve aynı hata oluştuğunda, hata günlüğe kaydedilir.

Sadece insanlar için ilgi dışarı

<customErrors defaultRedirect="/Error/Application" mode="RemoteOnly"> 
    <error statusCode="403" redirect="/error/forbidden"/> 
    <error statusCode="404" redirect="/error/notfound"/> 
    <error statusCode="500" redirect="/error/application"/> 
</customErrors> 

DÜZENLEME - Ben bitti tamamen özel hatalarını kapatarak ve şöyle Application_Error yılında yeniden yönlendirme ile uğraşan:

bu

özel hata yapılandırma ayarıdır:

protected void Application_Error(object sender, EventArgs e) 
{ 
    Exception exception = Server.GetLastError(); 

    // ... log error here 

    var httpEx = exception as HttpException;  

    if (httpEx != null && httpEx.GetHttpCode() == 403) 
    { 
     Response.Redirect("/youraccount/error/forbidden", true); 
    } 
    else if (httpEx != null && httpEx.GetHttpCode() == 404) 
    { 
     Response.Redirect("/youraccount/error/notfound", true); 
    } 
    else 
    { 
     Response.Redirect("/youraccount/error/application", true); 
    } 
} 

cevap

13

Eğer Server.ClearError veya kapanı hatayı aramazsan Page_Error veya Application_Error olay işleyicisi, hata Web.config dosyasının bölümdeki ayarlara göre işlenir. Daha fazla bilgi için this SO question numaralı telefona bakın

İlgili konular