SORU
20 ŞUBAT 2009, Cuma


ASP.NET MVC giriş hataları

Şu anda ASP.NET MVC uygulamam log4net günlük özel durumlar için kullanıyorum. Bu yaptığım benim bütün denetleyicileri BaseController sınıfından miras alarak. Bu BaseController. OnActionExecuting olay meydana gelmiş olabilecek özel durumlar oturum:

protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
    // Log any exceptions
    ILog log = LogManager.GetLogger(filterContext.Controller.GetType());

    if (filterContext.Exception != null)
    {
        log.Error("Unhandled exception: "   filterContext.Exception.Message  
            ". Stack trace: "   filterContext.Exception.StackTrace, 
            filterContext.Exception);
    }
}

Bu ise işlenmeyen bir özel durum denetleyici bir eylem sırasında meydana gelen harika çalışıyor.

404 hataları için, özel bir hata benim web kurdunuz.config gibi

<customErrors mode="On">
    <error statusCode="404" redirect="~/page-not-found"/>
</customErrors>

Ve denetleyici eylem "page-not-found" url, özgün url, istenen giriş: . kolları

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult PageNotFound()
{
    log.Warn("404 page not found - "   Utils.SafeString(Request.QueryString["aspxerrorpath"]));

    return View();
}

Ve bu da çalışır.

Yaşadığım sorun üzerinde bir hata günlüğü için nasıl .kendilerini SEO sayfaları. Hadi istisna olacak sayfaları veya bazı satır kod bir derleme bir hata var dediler

<% ThisIsNotAValidFunction(); %>
<% throw new Exception("help!"); %>

HandleError özniteliği doğru benim için bu Hata yeniden görünür.Paylaşılan klasörde sayfa SEO ama kesinlikle benim BaseController. OnActionExecuted yöntem tarafından yakalanan değildir. Belki de Hata günlüğü kodu koyabilirim diye düşünüyordum.SEO sayfa kendisi, ama bu seviyede hata bilgilerini almak için nasıl emin değilim.

CEVAP
20 ŞUBAT 2009, Cuma


Elmah takılmasıyla web uygulama basitleştirilmesi düşünün.

Projeniz için Elmah Meclisi ekleyin ve sonra web yapılandırın.config. O zaman istisnalar denetleyicisi veya sayfa düzeyinde oluşturulan oturum. Farklı farklı yerlerde (SQL Server, e-Posta vb gibi) oturum yapılandırılabilir. Bu özel durumlar günlüğüne göz atabilirsiniz, böylece aynı zamanda bir web arayüzü sağlar.

Ben eklemek ilk şey, herhangi bir ASP.NET kendi mvc uygulaması oluşturun.

Ben hala log4net, ama hata ayıklama günlüğü için kullanmak eğilimindedir/bilgi kullanımı, ve tüm özel durumları Elmah bırakın.

Ayrıca söz konusu daha fazla bilgi How do you log errors (Exceptions) in your ASP.NET apps? bulabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008