【问题标题】:Where does ELMAH save its data?ELMAH 将其数据保存在哪里?
【发布时间】:2012-03-09 18:05:45
【问题描述】:

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

【问题讨论】:

  • This 是一个更有用的链接以获取更多信息。
  • 您在 web.config/app.config 中设置了大多数选项,如果您查看示例之一,您会看到(合理的)说明如何设置各种类型的存储。

标签: c# .net elmah


【解决方案1】:

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

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

...
</elmah>

你的 connectionStrings 部分应该有 ElmahConnectionString,如下所示:

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

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

【讨论】:

  • 我得到“找不到存储过程'ELMAH_GetErrorsXml'。”!已经安装了nuget.org/packages/elmah.sqlserver,但还是同样的问题。请记住,我在 Elmah 之上使用 Elmah.MVC(不确定它是否有所作为)。有什么帮助吗?谢谢!
  • 知道了!回复stackoverflow.com/a/5380167/1133338。我必须手动运行 sql 脚本来创建表。所以我想知道 nuget.org/packages/elmah.sqlserver 做了什么(除了在我的 web.config 中添加一个空的连接字符串?
  • 它可能只是在 elmah 配置中添加了 errorLog 条目...它无法操作您的数据库,因为它“不知道”如何连接到它。
【解决方案2】:

阅读“检查 ErrorLog 类”主题,您会找到答案

Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 2011-10-29
    • 2015-06-06
    • 1970-01-01
    • 2012-02-14
    • 2012-07-26
    • 2016-01-23
    • 2019-05-23
    • 2012-07-07
    相关资源
    最近更新 更多