ELMAH在哪里保存数据?

Joa*_*eme 41 .net c# elmah

我刚刚安装了ELMAH.MVC(这里有更多信息),并想知道它的数据保存在哪里.我读过您可以选择设置数据库进行存储,但似乎默认安装使用"内存中"?它是如何工作的?如果我回收应用程序池或IIS网站,我是否会丢失所有数据?谢谢!

Ale*_*tic 37

是的,默认情况下它使用内存存储.重新启动应用程序池时,会丢失elmah数据.如果我记得很清楚,旧版本的elmah使用App_Data文件夹存储xml文件...如果你想使用数据库存储日志,只需在你的elmah配置部分指定连接字符串:

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

...
</elmah>
Run Code Online (Sandbox Code Playgroud)

您应该在connectionStrings部分中使用ElmahConnectionString,如下所示:

<connectionStrings>
    <add name="ElmahConnectionString "
         connectionString="Initial Catalog=my_database;data source=.\SQLEXPRESS;Integrated Security=SSPI;"
         providerName="System.Data.SqlClient" />
...
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

在这里,您可以找到示例web.config文件.

  • 得到它了!回复http://stackoverflow.com/a/5380167/1133338.我不得不手动运行sql脚本来创建表.所以我想知道nuget.org/packages/elmah.sqlserver做了什么(除了在我的web.config中添加一个空连接字符串? (4认同)
  • 我收到"无法找到存储过程'ELMAH_GetErrorsXml'."!已经安装了http://nuget.org/packages/elmah.sqlserver但仍然存在同样的问题.记得我在Elmah上使用Elmah.MVC(不确定它是否有所作为).有帮助吗?谢谢! (2认同)