c# - Elmah 1.2 不在 Windows 2008 IIS7.5 集成模式下登录到 SQL(但在本地工作)

标签 c# asp.net webforms elmah

我正在构建一个新的 Web 窗体 aspnet 4.0 网站,并使用 NuGet 安装了 Elmah 1.2。我在 web.config 中添加了一行以登录到 sql server express,并创建了相关表和 3 个存储过程。在本地(Win 7/IIS 7.5)一切正常(当通过 vs2010 开发服务器和我的本地 IIS 运行时)- 我可以点击 elmah.axd/test 然后返回到 elmah.axd,果然,我的错误已被记录。

然后我将站点发布到我们的开发服务器 (Win 2008 R2/IIS 7.5)。如果我点击 elmah.axd,它会通知我没有错误 - 然后我转到 elmah.axd/test 并返回到 Elmah,仍然没有错误。如果我将日志记录切换到内存而不是 SQL,一切正常。

我已经为站点中所有存储过程的应用程序池用户添加了执行权限。我什至创建了一个名为 ElmahConnString 的单独连接字符串,以 SA 身份登录 - 仍然没有成功。 (我尝试从 sa 中删除 a 以确保它坏了,果然它坏了 - 所以它肯定使用了那个 conn 字符串)。

我的网络配置看起来像这样(其中大部分都放在我的 NuGet 中!);

    <configuration>
      <configSections>
        <sectionGroup name="elmah">
          <section name="security" requirePermission="false"         type="Elmah.SecuritySectionHandler, Elmah" />
          <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
          <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
          <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
        </sectionGroup>

    ...
      <connectionStrings>
        <add name="ConnString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=SiteData;Integrated Security=True" />
      </connectionStrings>
      <elmah>
        <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ConnString" />
        <security allowRemoteAccess="yes" requirePermission="false"/>
      </elmah>
    ...
      <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.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules>
          <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
          <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
          <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
          <add name="ErrorTweet" type="Elmah.ErrorTweetModule, Elmah" preCondition="managedHandler" />
        </modules>
        <handlers>
          <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
        </handlers>
      </system.webServer>

你会注意到这包含了这个问题最广泛给出的答案,即底部的 system.webserver block :'(

我不明白?我错过了什么?

最佳答案

无法插入数据库,但不是sql权限问题?

  • 也许您的磁盘已满。
  • 也许您创建了一个没有 IDENTITY 列但应该有的表。

说真的 - 你不能等整整两分钟才能得到答案吗?也许它正在插入数据库,但您检查得太快了。

关于c# - Elmah 1.2 不在 Windows 2008 IIS7.5 集成模式下登录到 SQL(但在本地工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6582818/

相关文章:

c# - 帮助 LINQ 查询

c# - AudioPlaybackAgent 中的计时器

asp.net - 您多久使用一次自定义事件?

javascript - RadAjaxNamespace 未定义

c# - ASP.NET 发布错误(指定的路径、文件名或两者都太长)

c# - 异步命令模式——异常处理

css - 在模态对话框中设置文本框控件的大小

javascript - 如何在母版页和单个页面上应用 KnockoutJS?

asp.net - 如何将 CSS 应用于 ASP.NET CheckBoxList 控件的内部元素

c# - 在 asp.net 中调试类