2013-05-02 2 views
15

ELMAH 문제가 있습니다. 나는 그것이 연결 문자열이라고 생각하지만 이유를 알 수 없다. 나에게 아무런 문제가 없다는 이메일을 보내고있다. 단지 SQL에 로깅하지 않는다. 문제가 사용 권한 인 경우 사용 권한 문제를 표시하기 위해 오류를 어떻게 catch합니까?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 관련 섹션입니다. 나는 로깅하지 않는 동일한 문제가 있었다. Elmah에 저장된 실행 권한을 DB에 연결하는 데 사용한 자격 증명과 함께 추가해야했습니다.

+2

어. 나는 멍청이다. 프로젝트를 진행하면서 코드 우선으로 전환하고 ELMAH 테이블을 포함하여 데이터베이스를 여러 번 재구성했습니다. 이는 테이블에 대한 사용 권한을 변경했습니다. 따라서 사용 권한에 대한 팁이 정확합니다. 감사. –

+1

도움이됩니다. 참고 실행 권한을 추가하는 구문은 다음과 같습니다. GRANT EXECUTE ON [StoredProcName] TO [UserName] – Bern