Я создаю новый веб-сайт 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 внизу: '(
Я не получаюэто? Что мне не хватает?