2012-02-18 9 views
40

ELMAH.MVC'yi (daha fazla bilgi here) yükledim ve verilerin nerede saklandığını merak ettim. Veritabanını depolama için ayarlamayı seçebileceğinizi okudum, ancak varsayılan yükleme "bellekte" kullanıyormuş gibi görünüyor mu? O nasıl çalışır? Uygulama havuzunu veya IIS web sitesini geri dönüştürürsem, tüm verileri kaybeder miyim? Teşekkürler!ELMAH verilerini nereden kaydediyor?

+0

[Bu] (http://code.google.com/p/elmah/) bir olduğunu Cevabınız bulacaksınız Daha fazla bilgi için daha yararlı bağlantı. –

+0

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

+1

Birçok seçeneği web.config/app.config dosyasında ayarlarsanız, örnek bir tanesini işaretlerseniz, çeşitli türlerin nasıl ayarlanacağını (makul) talimatları görürsünüz. depolama. –

cevap

36

Evet, varsayılan olarak bellek deposunu kullanır. Uygulama havuzunuz yeniden başlatıldığında, elmah verilerini kaybedersiniz.

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

... 
</elmah> 

Sen ElmahConnectionString olmalıdır: İyi hatırlıyorsam, Elmalı eski sürümleri günlükleri depolamak için veritabanı kullanmak istiyorsanız, sadece ELMAH yapılandırma bölümünde bağlantı dizesi belirtin ... xml dosyalarını depolamak için App_Data klasörü kullanılan Bu gibi connectionStrings bölümünde, bir şey:

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

Here Eğer örnek web.config dosyasını bulabilirsiniz. konuyu "ErrorLog Sınıf incelenmesi" in

+2

"Depolanan yordam 'ELMAH_GetErrorsXml' bulunamadı." Alıyorum. Zaten http://nuget.org/packages/elmah.sqlserver yüklü ama yine de aynı sorun. Elmah.MVC'yi Elmah'ın üzerinde kullandığımı hatırlıyorum (fark yaratırsa emin değilim). Herhangi bir yardım? Teşekkürler! –

+4

Anladım! yanıt http://stackoverflow.com/a/5380167/1133338. Tabloyu oluşturmak için sql komut dosyasını elle çalıştırmam gerekiyordu. Bu yüzden nuget.org/packages/elmah.sqlserver'ın ne yaptıklarını merak ettim (web.config'ime boş bir bağlantı dizesi eklemekten başka? –

+1

Muhtemelen elmah yapısına errorLog girişi eklendi ... çünkü veritabanınızı değiştiremez. "Bilmiyor" nasıl bağlanır –