2013-05-02 7 views
15

ELMAHの問題が発生しています。私はそれが接続文字列だと思うが、理由を理解できない。それはエラーを私に電子メールで送信しているだけで、SQLにログインしないでください。問題がパーミッションの場合、パーミッションの問題を示すためにエラーをどのように捕まえることができますか?お使いの設定がよさそうだ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

:ここに私のweb.configファイルのELMAH関連セクションです。私はそれがログに記録されていない同じ問題を抱えていました。 DBに接続するために使用していた資格情報とともに、Elmahストアドプロシージャに実行権限を追加する必要がありました。

+2

私はばかです。プロジェクトの途中で、私はCode Firstに切り替えて、ELMAHテーブルを含めてデータベースを数回再構築しました。これはテーブルへのアクセス権が変更されたことを意味していました。だから、アクセス許可についてのあなたのヒントは正しいです。ありがとう。 –

+1

とても役に立ちます。実行許可を追加する構文は次のとおりです。GRANT EXECUTE ON [StoredProcName] TO [UserName] – Bern

関連する問題