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

Я создаю новый веб-сайт aspnet 4.0 Web Forms и установил Elmah 1.2, используя NuGet.Я добавил строку в 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 - все еще не повезло.(Я попытался удалить 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 внизу: '(

Я не получаюэто? Что мне не хватает?

1 Ответ

2 голосов
/ 05 июля 2011

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

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

Серьезно - вы не могли ждать двух целых минут ответа? Может быть, это вставка в базу данных, но вы проверяете слишком быстро.

...