2013-05-01 19 views
7

Ho eseguito gli script sql ELMAH nel DB di test (ha creato la tabella ELmah_Error e 3 stored procedure) e configurato ELMAH nell'applicazione MVC utilizzando Nuget.ELMAH per ASP.NET MVC 4 con SQL SERVER 2008 R2

ho modificato web.config, come specificato e sono in grado di accedere eccezioni in

http://mysite/elmah.axd 

Ma, invece voglio registrare le eccezioni in SQL Server.

ho aggiunto sotto classe per conseguire tale

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 
    } 
} 

passo finale è stato quello di:

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

E 'il modo corretto di utilizzare ELMAH per registrare tutte le eccezioni o mi sto perdendo qualcosa?

risposta

11

Una volta che avete la configurazione del database, tutto quello che dovete fare è aggiungere la seguente alla sezione <elmah> web.config per impostare l'Elmah per accedere al database SQL:

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

Sostituire <DBConnString> e <YourApp> con valori appropriati per la tua configurazione.

Una volta eseguita questa operazione, non sarà necessario utilizzare la classe ElmahHandleErrorAttribute personalizzata.

Non sono sicuro del pacchetto NuGet installato, ma consiglierei di utilizzare il pacchetto Elmah.MVC poiché integra perfettamente Elmah in MVC impostando tutti gli ErrorHandler e ErrorFilters.

+1

Che dire di una configurazione elmah esistente? Elmah creerà le tabelle necessarie? – Rahatur

+7

Nessun elamh non creerà automaticamente le tabelle esistenti. Tuttavia, puoi scaricare uno script per farlo per il tipo di database e la versione da https://code.google.com/p/elmah/wiki/Download nella sezione del database. –

+0

Credo sia il nome della stringa di connessione (come definito nella sezione web.config ), non la stringa di connessione stessa, che va nel valore connectionStringName = "". – Bern

Problemi correlati