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

本文关键字:SQL 登录 工作 模式 不在 Windows 2008 集成 IIS7 Elmah | 更新日期: 2023-09-27 18:01:04

我正在构建一个新的Web Forms aspnet 4.0网站,并使用NuGet安装了Elmah 1.2。我在web.config中添加了一行以登录到sqlserverexpress,并创建了相关的表和3个存储的proc。在本地(Win 7/IIS 7.5(,一切都很好(当通过vs2010 dev服务器和我的本地IIS运行时(-我可以点击elmah.axd/test,然后返回elmah.xd,当然,我的错误已经被记录下来了。

然后,我将网站发布到我们的开发服务器(Win 2008 R2/IIIS 7.5(。如果我点击elmah.axd,它会通知我没有错误-然后我转到elmah.xd/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块:"(

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

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

您不能插入数据库,但这不是sql权限问题吗?

  • 也许你的磁盘已满
  • 也许您已经创建了一个没有IDENTITY列的表,其中应该有一个列

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