2013-03-22 4 views
19

Sono nuovo di ASP.NET MVC e sto cercando il modo meno doloroso per ottenere la gestione globale degli errori, la registrazione e la creazione di report (via email). Per tua informazione, la mia app ASP.NET MVC è ospitata come ruolo web in Azure, ma sto cercando di evitare l'utilizzo di hook specifici di Azure.Elmah.MVC vs Elmah.contrib.Mvc

Sembra che ottenere ELMAH installato e configurato sia un buon primo passo.

Quando guardo in NuGet, vedo:

  • ELMAH ("ELMAH con la configurazione iniziale per iniziare in fretta ...")
  • Elmah.Contrib.Mvc (" ... progettato per aggiungere la facilità d'uso all'interno di progetti MVC ... ")
  • Elmah.MVC (" ... integrazione indolore in MVC ... ")

Quale di questi pacchetti non voglio installare?

EDIT: Dopo alcuni esperimenti, sono più confuso. Ho confrontato i file di progetto dopo aver installato ciascuna delle tre opzioni su un'app MVC 4 predefinita. Sembra che né Elmah.Contrib.Mvc né Elmah.MVC aggiungano il pacchetto elmah.1.2.2 (che ottengo quando installo ELMAH di base). Inoltre, nessuno dei due pacchetti aggiunge la sezione <elmah> a Web.config.

Quindi ... devo prima installare ELMAH e poi installare uno dei pacchetti "... MVC" per ottenere tutti i miglioramenti che presumibilmente mi ottengono?

risposta

23

ELMAH - Questo è il pacchetto ELMAH di default senza codice specifico MVC in esso, se non fare ciò che è descritto here Non credo ELMAH registrerà qualsiasi errori che si verificano sei controllori, e potrebbe non essere in grado di accedere alla pagina di log ELMAH

Elmah.Contrib.Mvc - Questo è un miglioramento su ELMAH appositamente per MVC basato su uno dei creatori di ELMAHS risposta a una stack overflow question.

Elmah.MVC - Questo è simile al pacchetto di cui sopra, ma credo che fornisca un supporto molto migliore per le funzionalità di mvc come i percorsi ecc., È anche abbastanza facile da installare e configurare, rimuove un sacco di problemi intorno a te che fare con ELMAH di stipulare varie parti che arent richiesto durante l'esecuzione in un progetto MVC

è possibile leggere i post autori per avere una migliore idea di come funziona:

Personalmente credo l'ultimo pacchetto sarebbe il migliore uso ot, sembra essere il più aggiornato e mantenuto dei due più MVC.

+0

Grazie Daniel. Una cosa che ho scoperto rapidamente è che il pacchetto ELMAH funziona benissimo fuori dagli schemi. L'ho installato, estrapolato le modifiche necessarie a HandleErrorAttribute (http://stackoverflow.com/questions/766610/how-to-get-elmah-to-work-with-asp-net-mvc-handleerror-attribute/ 779961 # 779961), e ha funzionato. Ho aggiunto una sezione '' alla sezione '', e, bada bing, bada boom, il mio sito Web mi invia e-mail quando vengono rilevati errori. –

+0

Sono d'accordo con la raccomandazione di ELMAH.MVC, ho avuto la miglior fortuna con questo progetto per l'integrazione di Elamh nei miei siti MVC. –

+1

Grazie, Elmah.MVC funziona alla grande per me. Un paio di altri URL utili: configurazione di Elmah.MVC: https://github.com/alexbeletsky/elmah-mvc e impostazione di Elmah.MVC per utilizzare MSSQL anziché memoria per memorizzare errori: http://www.andyfrench.info /2014/07/configuring-elmah-to-use-sql-server.html – Andrew

2

Si potrebbe considerare l'utilizzo di Elfar invece di Elmah. Elfar è "ispirato" da Elmah ma è progettato per essere specifico MVC ed è molto semplice da configurare.

Basta aprire NuGet e cercare Elfar. Troverete una serie di pacchetti diversi, ma in generale si desidera quello che si conforma alla tecnologia che si è in uso nell'intestare. Non ho familiarità con i ruoli Web di Azure, ma se si ha accesso a un server Sql standard, è sufficiente utilizzare Elfar.SqlClient.

Maggiori informazioni qui:

https://github.com/stevenbey/elfar/wiki

+0

La pagina di github è piuttosto scarsa. La pagina sourceforge (http://sourceforge.net/p/elfar/wiki/Home/) contiene collegamenti alla documentazione (ad esempio). –

+0

puoi personalizzare la visualizzazione degli errori in elfar? –

+0

@ Bob.at.SBS Il sourceforge non è aggiornato. Github è la roba attuale. –

Problemi correlati