2012-02-18 1 views
40

Ho appena installato ELMAH.MVC (ulteriori informazioni here) e mi chiedevo dove sono stati salvati i suoi dati. Ho letto che puoi scegliere di configurare il database per l'archiviazione ma sembra che l'installazione predefinita usi "in memoria"? Come funziona? Se riciclo il pool di app o il sito Web IIS, perdo tutti i dati? Grazie!Dove ELMAH salva i suoi dati?

+0

[Questo] (http://code.google.com/p/elmah/) è un collegamento più utile per ulteriori informazioni. –

+0

http://code.google.com/p/elmah/ –

+1

È possibile impostare la maggior parte delle opzioni in web.config/app.config, se si seleziona l'esempio, verranno visualizzate istruzioni (ragionevoli) su come impostare vari tipi di stoccaggio. –

risposta

36

Sì, per impostazione predefinita utilizza la memoria. Al riavvio del pool di applicazioni, si perdono i dati elmah. Se ricordo bene, le vecchie versioni di ELMAH utilizzati cartella App_Data per memorizzare i file XML ... Se si desidera utilizzare il database per archiviare i log, basta specificare stringa di connessione nel vostro ELMAH sezione di configurazione:

<elmah> 
... 
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ElmahConnectionString"/> 

... 
</elmah> 

si dovrebbe avere ElmahConnectionString nella tua sezione connectionStrings, qualcosa di simile:

<connectionStrings> 
    <add name="ElmahConnectionString " 
     connectionString="Initial Catalog=my_database;data source=.\SQLEXPRESS;Integrated Security=SSPI;" 
     providerName="System.Data.SqlClient" /> 
... 
</connectionStrings> 

Here è possibile trovare il file web.config esempio.

+2

Sto ricevendo "Impossibile trovare la stored procedure 'ELMAH_GetErrorsXml'."! Già installato http://nuget.org/packages/elmah.sqlserver ma ancora lo stesso problema. Ricorda che sto usando Elmah.MVC su Elmah (non sono sicuro che faccia la differenza). Qualsiasi aiuto? Grazie! –

+4

Trovato! risposta http://stackoverflow.com/a/5380167/1133338. Ho dovuto eseguire manualmente lo script sql per creare la tabella. Quindi mi stavo chiedendo cosa ha fatto nuget.org/packages/elmah.sqlserver (oltre all'aggiunta di una stringa di connessione vuota al mio web.config? –

+1

Probabilmente ha appena aggiunto la voce errorLog a elmah config ... non può manipolare il tuo database perché "non sa" come connettersi ad esso –