ELMAH 未在 elmah.axd 中显示来自 SQL Server 的所有错误日志

Han*_*meG 2 sql-server asp.net elmah

我设置 Elmah 将错误记录到 SQL Server,Web 应用程序将所有错误记录到数据库,但并非所有错误都显示在elmah.axd.

一些缺失的错误是:

  • System.Web.HttpUnhandledException

    _shutDownMessage=HostingEnvironment 启动关闭 HostingEnvironment 导致关闭 _shutDownStack=
    在 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
    at System.Environment.get_StackTrace()
    at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()....

  • System.Web.HttpException

    会话状态在此上下文中不可用。

  • _shutDownMessage=IIS 配置更改 HostingEnvironment 启动关闭 HostingEnvironment 导致关闭 CONFIG 更改 _shutDownStack=
    在 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
    在 System.Environment.get_StackTrace() .....

请参阅随附的屏幕截图。

如何使数据库中的所有错误出现在elmah.axd?

当我将错误保存在文件系统中时一切正常,但当我移至 SQL Server 时则不然。

谢谢!

数据库中的错误日志

错误日志显示在 elmah.axd 中

Inp*_*als 5

如果我可以谦虚地建立在首席架构师 Atif 所说的基础上,在您的Web.config 中,它是这一部分:

<elmah>
  <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="foo" />
</elmah>
Run Code Online (Sandbox Code Playgroud)

将其设置为:

<elmah>
  <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="foo" applicationName="*" />
</elmah>
Run Code Online (Sandbox Code Playgroud)

这将显示所有数据库错误记录,而不仅仅是与 Elmah 正在运行的应用程序名称匹配的记录。如果未提供applicationName属性,它只会返回与 IIS 分配的标识符匹配的记录,例如-“/LM/W3SVC/10/ROOT”。

如果您有一个纯粹用于查看环境中所有应用程序中记录的 Elmah 错误的应用程序,这非常有用。

我 <3 艾尔玛!

  • 啊,看来我可能错过了对 Elmah 存储过程的关键更改:[ELMAH_GetErrorsXml] 和 [ELMAH_GetErrorXml]。在这些 sproc 中,尝试将 WHERE 子句中的所有实例更改为:`[Application] = @Application` 为:`(@Application = '*' OR ([Application] = @Application))`。这样,使用 `applicationName="*"` 作为其 Elmah 应用程序名称的应用程序将返回所有记录,而所有其他应用程序仍将返回特定于其 `applicationName="MyAppName"` 的记录。如果这有帮助,请告诉我。 (2认同)