Elmah 1.2 не регистрируется в SQL в интегрированном режиме Windows 2008 IIS7.5 (но работает локально)

Я создаю новый веб-сайт Web Forms aspnet 4.0 и установил Elmah 1.2 с помощью NuGet. Я добавил строку в web.config для входа в sql server express и создал соответствующую таблицу и 3 сохраненных процесса. Локально (Win 7 / IIS 7.5) все работает хорошо (при запуске через сервер vs2010 dev и мой локальный IIS) - я могу нажать elmah.axd / test, затем вернуться на elmah.axd и, конечно же, моя ошибка была зарегистрирована.

Затем я публикую сайт на нашем сервере разработки (Win 2008 R2 / IIS 7.5). Если я нажимаю elmah.axd, он сообщает мне, что ошибок нет - я затем перехожу на elmah.axd / test и возвращаюсь в Elmah, но ошибок по-прежнему нет. Если я переключу ведение журнала на память, а не на SQL, все будет работать нормально.

Я добавил права на выполнение пользователю пула приложений для всех сохраненных процессов на сайте. Я даже создал отдельную строку подключения под названием ElmahConnString, войдя в систему как SA - все равно не повезло. (Я попытался удалить a из sa, чтобы убедиться, что он сломался, и, конечно же, он сломался, поэтому он определенно использовал эту строку 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 внизу: '(

Я не понимаю? Что мне не хватает?


person Shawson    schedule 05.07.2011    source источник
comment
да ладно - это было две ЦЕЛЫЕ МИНУТЫ! Все еще нет ответов? :П   -  person Shawson    schedule 05.07.2011


Ответы (1)


Вы не можете вставить в базу данных, но это не проблема с разрешениями sql?

  • Возможно, ваш диск заполнен.
  • Возможно, вы создали таблицу без столбца IDENTITY, где он должен быть.

Серьезно - вы не могли ждать ответа ЦЕЛЫЕ две МИНУТЫ? Может быть, он вставляется в базу данных, но вы проверяете слишком быстро.

person Paul Spangle    schedule 05.07.2011
comment
Bang On! Оказалось, что сценарий локальной базы данных разработчиков пошел наперекосяк - столбец Elmah_Errors таблицы Sequence потерял спецификацию Identity. Когда я вошел в систему с помощью SQL Profiler, я увидел, что sproc для вставки ошибок постоянно дает сбой - я скопировал и вставил sproc exec в sql mgmt studio, и он застонал о NULL в столбце последовательности. Я просто добавил спецификацию личности, и все снова начало волшебным образом работать (ура!) Спасибо, Пол, за то, что указал мне в правильном направлении! - person Shawson; 05.07.2011