【问题标题】:ELMAH applicationName: show exceptions logged by another siteELMAH applicationName:显示另一个站点记录的异常
【发布时间】:2012-09-22 00:54:37
【问题描述】:

我有一个使用 Elmah.SqlErrorLog 记录错误的站点。我的目标是让另一个站点包含处理通常在 localhost/elmah.axd 上看到的页面的处理程序。原因是记录错误的站点使用表单身份验证,而我想限制谁可以通过 Windows 身份验证查看日志。

进行日志记录的站点在端口 80 上运行,显示日志的站点在端口 8008 上。起初,我无法从日志记录站点看到异常。然后我找到了这个答案,它解释了你可以为你的errorLog设置applicationName:Separate viewer application for ELMAH's log

我查看了 ELMAH 记录到的表,发现在我尝试将记录/查看分成两个不同的站点之前,它一直在应用程序列中记录“/LM/W3SVC/3/ROOT”。

指定 applicationName="/LM/W3SVC/3/ROOT" 后,它起作用了!不幸的是,这个值因机器而异,当下一个人的开发框恰好具有“/LM/W3SVC/10/ROOT”的应用程序名称时,它不会很好地工作。据此,该字符串与本地机器命名空间有关:http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/44a57859-8fbb-4238-a7b5-f10c34cf8fe8.mspx?mfr=true

如何获取端口 8008 上的站点,用于查看日志以显示从端口 80 上的站点记录的异常?

【问题讨论】:

    标签: asp.net-mvc-3 iis-7 elmah


    【解决方案1】:

    一旦您明确设置了 applicationName,这就是它在将异常记录到数据库时应该使用的名称。

    如果您在两个站点的配置中都设置了 applicationName="Foo",则站点上记录在端口 80 上的任何新异常都应该对端口 8008 上的站点可见

    如果您需要显示在此更改之前记录的旧错误,您可以将 ELMAH_Error 表中的 Application 字段也更新为“Foo”

    编辑

    applicationName 值设置为 web.config 中 errorLog 元素的属性

        <elmah>
            <security allowRemoteAccess="false" />
            <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sqlserver" applicationName="Foo" />
        </elmah>
    

    【讨论】:

    • 我假设您的意思是在 web.config 中设置 applicationName。这应该去哪里?我看到的谷歌搜索结果都与 部分有关。它是否正确? weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-2200_applicationName_2200-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx
    • 我已经更新了答案以包含一个示例 - 您的 web.config 中应该有一个 elmah 部分 - 应用程序名称在其中的 errorLog 部分中设置
    猜你喜欢
    • 2011-06-04
    • 2019-03-02
    • 1970-01-01
    • 2010-10-23
    • 2011-12-14
    • 2015-11-11
    • 2011-03-01
    • 2014-03-26
    相关资源
    最近更新 更多