ELMAH database SQL Error Handler non disponibile- cosa succede a registrazione?

StackOverflow https://stackoverflow.com/questions/758092

  •  09-09-2019
  •  | 
  •  

Domanda

sto testando ELMAH e deliberatamente disattivato la connessione al database per il log ELMAH nella mia richiesta di vedere cosa accadrà in produzione se il DB non è disponibile.

Sembra che ELMAH impossibile intercettare la propria errori: il file AXD non è disponibile quando il registro SQL databse non riesce.

Qual è il comportamento previsto del ELMAH se il database non è disponibile?

Come posso diagnosticare i miei errori se questo si verifica?

È stato utile?

Soluzione

Non proprio sicuro di ELMAH ma prevedibile comportamento di tali quadri di registrazione è non buttare eccezioni se qualcosa va storto con loro. Cioè se il database di ELMAH è giù mi piacerebbe pensare che sarà solo Non registrare gli errori nel database.

Come suggerito in precedenza si può / deve utilizzare alternative lavandini -. E-mail o file flat

Altri suggerimenti

  

Sembra che ELMAH non possono intrappolare il proprio   errori

ELMAH fa trappola i propri errori in una certa misura. Se il ErrorLogModule rileva un'eccezione durante il tentativo di registrare l'errore, allora l'eccezione derivante dalla registrazione viene inviato alla funzione di traccia standard di .NET Framework. Vedere la linea 123 da 1,0 . fonti Vedi anche i seguenti walk-through dalla documentazione ASP.NET per ottenere il tracciamento .NET Framework standard di lavoro con ASP.NET tracciamento:

Procedura dettagliata: Integrazione di ASP.NET Tracing con System.Diagnostics tracing

  

il file AXD non è disponibile quando il   log databse SQL fallisce.

Questo è corretto. connettività di database di SQL Server deve essere funzionale per visualizzare gli errori memorizzati in un database di SQL Server quando si utilizza SqlErrorLog.

  

Qual è il comportamento previsto del ELMAH   se il database non è disponibile?

Se, per esempio, il database di SQL Server è giù, un SqlException si verificano durante il logging. ELMAH invierà quindi il contenuto oggetto SqlException alla funzione di traccia standard di .NET Framework.

  

Come posso diagnosticare i miei errori se questo   si verifica?

L'opzione migliore è quello di consentire anche la registrazione e e-mail di errori. Se il database è in basso, ci sono buone probabilità che il gateway di posta è alto e si continua a ottenere notificato di errori. Gli errori saranno, in effetti, ottenere registrati in qualche casella di posta (es). Questo ha anche il vantaggio che se il gateway di posta è sempre verso il basso, allora è probabile che il database sarà attivo e gli errori arriveremo registrato. Se entrambi sono giù, però, allora si avrà bisogno di rivedere seriamente l'infrastruttura di produzione e, eventualmente, adottare misure per monitorare la salute del vostro sistema attraverso misure aggiuntive.

Si può sempre utilizzare l'opzione file XML per registrare i vostri errori.

Credo che tu stia mescolando contesti un po '.

il comportamento di ELMAH se il database non è disponibile è quello di non registrare gli errori nel database. Se viene generata un'eccezione sul server o se si alza un'eccezione tramite un ErrorSignal, ELMAH ha intenzione di lasciare tale eccezione passare a uno schermo di colore giallo o una pagina errori personalizzati (l'impostazione.)

Da pagina Errors.axd è accessibile solo a coloro che dovrebbe essere visto che (idealmente,) è bene presentare tale errore per l'utente.

La linea di fondo è che se il database è giù errori non è possibile diagnosticare gli errori. Per noi, se così fosse, avremmo grossi problemi in quanto il database errore si siede con il database di produzione.


Vorrei anche sostenere contro l'uso di registrazione XML per la vostra fonte primaria di registrazione. SQL Server sta per dare le migliori prestazioni, senza dover gestire i file. Con la registrazione XML che non è il caso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top