【问题标题】:Elmah not working on live siteElmah 不在现场工作
【发布时间】:2011-05-31 05:10:21
【问题描述】:

我在一个 asp.net mvc 3 站点上使用 elmah,它在本地运行良好,但是当我将它上传到我的共享主机站点 (iis 7) 时,它似乎没有记录任何错误。

我使用 nuget 来获取库,我假设它在 web.config 中设置了它需要的所有内容。

所以我不知道我错过了什么以及为什么它没有出现。

编辑

这就是我拥有的所有 elmah

    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
          <elmah xdt:Transform="Replace">
            <errorMail from=""
                   to=""
                   cc=""
                   subject=""
                   async="true"
                   smtpPort="26"
                   smtpServer=""
                   userName=""
                   password="" />
            <errorLog type="Elmah.SqlErrorLog, Elmah" logPath="~/App_Data" connectionStringName="ConnectionString" />
            <errorFilter>
          <test>
            <equal binding="HttpStatusCode" value="404" type="Int32" />
          </test>
        </errorFilter>
        <security allowRemoteAccess="0" />
      </elmah>
    </configuration>
  <system.web>
    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>
    <httpHandlers>
      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    </httpHandlers>
  </system.web>

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
      <modules runAllManagedModulesForAllRequests="true">
          <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
          <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
          <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
      </modules>
      <handlers>
          <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
      </handlers>
  </system.webServer>

【问题讨论】:

  • 不确定你是否看过这个,可能会有所帮助 - stackoverflow.com/questions/5387652/…
  • 您将日志存储在哪里? sql,sqlite?
  • @naveen - 本地和实时使用 sql 相同的连接字符串。
  • @chobo2:向 4k 会员提出这个问题听起来很愚蠢。但是你确定你按要求创建了相关表和三个sps吗?
  • @naveen - 是的,我有 ELMAH_Error 表、ELMAH_GetErrorsXml、ELMAH_GetErrorXml 和 ELMAH_LogError SPS。叹息当我使用 elmah 并尝试去生活时,我似乎总是遇到这个问题。这一次似乎对我不起作用(通常忘记为 iis 7 设置它),因为我使用了 nuget,所以我不会有任何问题。

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


【解决方案1】:

如果您已使用 NuGet 下载它,您应该已准备好所有配置部分。 无论如何,请尝试检查您的 system.webServer 部分:

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
    <handlers>
      <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
    </handlers>
  </system.webServer>

【讨论】:

  • @LeftyX - 我看到它也有一个用于 iis 6 的。它们是否相互冲突?像我需要删除 iis 6 的东西吗?
  • @LeftyX - 除了数据库表和 3 sps 之外,我是否需要在我的 ms sql 2008 数据库中设置任何特殊的东西(可能是权限)?
  • @chobo2:你有连接字符串吗(愚蠢的问题)?
  • @chobo2:你必须确保用户(执行工作进程)可以执行存储过程。
  • @LefyX - 没关系。我不知道为什么我没有立即查看,但我查看了数据库表,它正在存储记录。我认为正在发生的事情是我试图通过我的本地主机查看实时的,但不是在同一个应用程序和主机上,所以它们不会被显示。猜猜电子邮件仍然有问题,因为他们没有发送。我必须调查一下,我认为这可能会让我失望。
猜你喜欢
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多