2013-05-01 30 views
7

Test DB'de ELMAH sql betiklerini çalıştırdım (Bu, ELmah_Error tablosu ve 3 saklı yordamları oluşturdu) ve Nuget kullanarak MVC uygulamasında ELMAH'yi yapılandırdım. belirtildiği gibi SQL SERVER 2008 R2 kullanarak ASP.NET MVC 4 için ELMAH

Ben web.config modifiye ve onun yerine ben SQL Server ile istisnalar giriş yapmak istiyor,

http://mysite/elmah.axd 

içine istisnalar giriş yapabiliyor olduğum Ama.

Ben

public class ElmahHandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute 
{ 
    public override void OnException(System.Web.Mvc.ExceptionContext context) 
    { 
     LogException(e); 
    } 
    private static void LogException(Exception e) 
    { 
     // Call to Database and insert the exception info 
    } 
} 

Son adım olduğunu ulaşmak için sınıfının altındaki ekledi: tüm istisnaları günlüğe ya da ben bir şey eksik AM ELMAH kullanılacak doğru yolu

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new ElmahHandleErrorAttribute()); 
} 

mi?

cevap

11

Eğer veritabanı kurulumu yaptıktan sonra, yapmanız gereken tüm kurulum için web.config Elmalı SQL Veritabanı oturum açmak için <elmah> bölümüne aşağıdakileri ekleyin edilir:

<elmah> 
     <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="<DBConnString>" 
      applicationName="<YourApp>" 
    </elmah> 

değiştirin <DBConnString> ve <YourApp> yapılandırmanız için uygun değerlerle.

Bunu yaptıktan sonra özel ElmahHandleErrorAttribute sınıfınızı kullanmanız gerekmeyecektir.

Hangi NuGet paketini yüklediğinizden emin değilim, ancak sizin için tüm ErrorHandlers ve ErrorFilter'leri ayarlayarak Elmah'ı MVC'ye mükemmel bir şekilde entegre ettiği için Elmah.MVC paketini kullanmanızı öneririz.

+1

Mevcut bir elma konfigürasyonu nedir? Elmah gerekli tabloları oluşturacak mı? – Rahatur

+7

Hiçbir elam mevcut tabloları otomatik olarak oluşturmaz. Ancak, veritabanı türünüz ve sürümünüz için veritabanı bölümündeki https://code.google.com/p/elmah/wiki/Downloads adresinden bir komut dosyası indirebilirsiniz. –

+0

Bağlantı dizesi adı (web.config bölümünde tanımlandığı gibi), bağlantı dizesinin kendisi değil, connectionStringName = "" değerine gider. – Bern