7

ASP.NET MVC ile ELMaH kullanmayla ilgili bazı yaklaşımlar için etrafa baktım, böylece özel hata sayfasını 404'ler dahil tüm özel durumlar için kullanabilirim. birlikte veya Elmah olmadan ya -Bu yaklaşım, MVC kokusu ile ELMaH kullanmak için mi?

ASP.Net MVC düzgün çalıştığını /Shared/Error.aspx nasıl questionsasking arasında no shortage yoktur. Bu görevle ilgili bir sorunum olmadı, ancak sanki ELMaH'ın yanında 404 sayfalık bir sayfayı kullanmamdaki çözümümün çok basit olduğunu ve kendisinin daha fazla olması gerektiğini hissettiğimden emin değilim.

Web.config customErrors etkinleştirdikten sonra, benim HomeController yeni eylem yarattı: Ben Elmah log filtreleme yetenekleri yararlanmak için benim Global.asax dosyasında yeni bir yöntem ekledi Oradan

public ActionResult PageNotFound() 
{ 
    return null; 
} 

ve , yukarıda bahsedilen PageNotFound ActionResult geri tepkisine yönlendirmede, istisna oyuna girişi icar sonra:

public void errorLog_Filtering(object sender, ExceptionFilterEventArgs e) 
    { 
     if (e.Exception.GetType().Equals(typeof(HttpException))) 
     { 
      HttpException ex = (HttpException)e.Exception; 
      if (ex.GetHttpCode() == 404) 
       Response.Redirect("/Home/PageNotFound"); 
     } 
    } 

Ben hala t bir sürü için yolumu buluyorum çünkü (varsayılan olarak MVC ile gelir birşeyler bakan muyum MVC) ile ilgili ipuçları, ya da daha basit bir çözümün bulunduğu problemi gözden geçiriyor mu? Herhangi bir girişi takdir edin.

+0

dönmek için hiçbir gerçek görünümü var. Sadece kullanıcının varsayılan /Shared/Error.aspx sayfasına düşmesine izin veriyorum. –

cevap

2

Eminim ASP.NET bu tür şeyleri sizin için halledebileceğinden, global.asax'ınızdaki 404 Eyleminize yeniden yönlendirmek için bir şey aramak zorunda değilsiniz. Örnek için aşağıya bakın.

<configuration> 
    <system.web> 
     <customErrors mode="On"> 
      <error statusCode="404" redirect="/servererrors/404.aspx" /> 
     </customErrors> 
    </system.web> 
</configuration> 

http://www.xefteri.com/articles/show.cfm?id=11

+1

Tamam. Her şeyden önce, bağlandığınız bu makale .Net 1.1 web formları geliştiricilerinin hedef kitlesi için 2002 (!) 'De yazılmıştır. Ancak, cevabınız bana yaklaşımımı tekrar gözden geçirdi ve şüphelendiğim gibi aşırı derecede işlediğim şeyleri yaptım. Global.asax dosyasında errorLog_Filtering olayına ihtiyacım yok, ancak * erişilebilen bir ActionResult'a ihtiyacım var. Giriş için teşekkürler. –

+0

Üzgünüm, makale oldukça eski ama yapılandırma yönü hala oldukça alakalı. Asp.net yapılandırmaları söz konusu olduğunda biraz değişti. –

İlgili konular