2013-05-02 2 views
15

У меня проблема с ELMAH. Я думаю, что это строка подключения, но не может понять, почему. Он отправляет мне сообщения об ошибках без проблем, просто не записывая их в sql. Если проблема связана с разрешениями, как я могу поймать ошибку, чтобы показать мне проблему с разрешением? Вот ELMAH соответствующий раздел моего web.config:ELMAH Вход в SQL Server

<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" /> 
    <section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah" /> 
</sectionGroup> 

<connectionStrings> 
<add name="ErrorLog" connectionString="Data Source=SQL1;Initial Catalog=ASBESTOS;User Id=MyUserName;Password=MyPassword" providerName="System.Data.SqlClient" />  

<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> 
</system.web> 
<system.webServer> 
<modules runAllManagedModulesForAllRequests="true"> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" /> 
</modules> 
<validation validateIntegratedModeConfiguration="false" /> 

<elmah> 
    <security allowRemoteAccess="1" /> 
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ErrorLog"/>  
    <errorMail from="[email protected]" to="[email protected]" subject="Asbestos Error Log" async="true"></errorMail> 
    </elmah> 
    <location path="elmah.axd" inheritInChildApplications="false"> 
    <system.web> 
     <authorization> 
     <allow roles="System" /> 
     <deny users="*" /> 
     </authorization> 
     <httpHandlers> 
     <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
     </httpHandlers> 
    </system.web> 
    <system.webServer> 
     <handlers> 
     <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" /> 
     </handlers> 
    </system.webServer> 
    </location> 

ответ

18

Ваш конфиг выглядит хорошо. У меня была такая же проблема, когда она не регистрировалась. Мне пришлось добавить разрешения выполнения для хранимых процедур Elmah с учетными данными, которые я использовал для подключения к БД.

+2

Ugh. Я идиот. Пройдя через проект, я переключился на Code First и несколько раз перестроил базу данных, ВКЛЮЧАЯ таблицу ELMAH, что означало, что изменения в таблице изменились. Итак, ваш отзыв о разрешениях правильный. Благодарю. –

+1

Так полезно. FYI синтаксис для добавления разрешений на выполнение: GRANT EXECUTE ON [StoredProcName] TO [UserName] – Bern