2012-02-18 89 views
40

我剛剛安裝了ELMAH.MVC(更多信息here)並想知道它的數據保存在哪裏。我讀過,你可以選擇設置數據庫的存儲,但似乎默認安裝使用「內存」?它是如何工作的?如果我回收應用程序池或IIS網站,是否會丟失所有數據?謝謝!ELMAH在哪裏保存數據?

+0

[這](http://code.google.com/p/elmah/)是更多有用的鏈接瞭解更多信息。 – 2012-02-18 17:45:44

+0

http://code.google.com/p/elmah/ – 2012-02-18 17:46:39

+1

您在web.config/app.config中設置了大多數選項,如果您檢查示例之一,您會看到(合理的)說明如何設置各種類型的儲存起來。 – 2012-02-18 17:48:07

回答

36

是的,默認情況下它使用內存存儲。當您的應用程序池重新啓動時,會丟失elmah數據。如果我記得很清楚,ELMAH的舊版本使用App_Data文件夾中存儲的XML文件...如果你想使用數據庫來存儲日誌,只是指定您ELMAH配置部分的連接字符串:

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

... 
</elmah> 

你應該有ElmahConnectionString在你的connectionStrings節,像這樣:

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

Here你可以找到例子web.config文件。

+2

我收到「無法找到存儲過程'ELMAH_GetErrorsXml'。」!已經安裝http://nuget.org/packages/elmah.sqlserver但仍然是同樣的問題。記得我在Elmah之上使用Elmah.MVC(不知道它是否有所作爲)。任何幫助?謝謝! – 2012-02-19 00:52:07

+4

明白了!迴應http://stackoverflow.com/a/5380167/1133338。我不得不手動運行sql腳本來創建表。所以我想知道nuget.org/packages/elmah.sqlserver做了什麼(除了添加一個空的連接字符串到我的web.config? – 2012-02-19 01:05:05

+1

它可能只是添加errorLog條目到elmah配置...它不能操縱你的數據庫,因爲它「不知道」如何連接到它 – 2012-02-19 01:23:42