2012-07-27 1 views
2

Elmah.MVC Nuget package을 사용하여 Elmah.MVC를 MVC 프로젝트에 설치했습니다. 그것은 개발 환경에서 잘 작동하지만 호스팅 서버 (IIS7) 웹 사이트를 업로드 할 때 오류를 기록하지 않습니다.Elmah.MVC는 프로덕션 환경에서 오류를 기록하지 않습니다.

<?xml version="1.0" encoding="utf-8"?> 
<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> 
    </configSections> 
    <connectionStrings> 
    ... 
    </connectionStrings> 
    <appSettings> 
     <add key="webpages:Version" value="1.0.0.0" /> 
     <add key="ClientValidationEnabled" value="true" /> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
     <add key="elmah.mvc.disableHandler" value="false" /> 
     <add key="elmah.mvc.requiresAuthentication" value="false" /> 
     <add key="elmah.mvc.allowedRoles" value="*" /> 
    </appSettings> 

    <system.web> 
     <customErrors mode="Off"> 
     </customErrors> 
     ... 
     <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> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <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> 
     ... 
    </system.webServer> 
    ... 
    <elmah> 
     <security allowRemoteAccess="yes" /> 
     <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" /> 
    </elmah> 
    <location path="elmah.axd" inheritInChildApplications="false"> 
     <system.web> 
      <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> 
</configuration> 

사람은 환경을 호스팅의 오류 로깅되지 않는 이유 & 말할 확인하십시오 수, 내 웹 설정 파일 (만 ELMAH의 configuraion)인가?

+0

가능한 복제본 [ELMAH이 (가) 로깅되지 않습니다] (http://stackoverflow.com/questions/3194700/elmah-is-not-logging) –

답변

6

응용 프로그램이 프로덕션 환경의 App_Data 디렉터리에 대한 쓰기 권한이 있습니까?

구성에 따라 SQL에 로깅하지 않습니다. -> 응용 프로그램 풀 ID는 App_Data/Elmah.Errors 파일에 추가하기 위해 파일을 수정/기록 할 수 있어야합니다. More information on the why and how.

+0

고맙습니다 ... :) 폴더 권한이 문제였습니다. .. – Nalaka526

3

나는 비슷한 문제가있었습니다. 나는이 줄을 사용했다 :

<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~\App_Data\Elmah.Errors" /> 

틀린. 당신은 슬래시 사용해야합니다 :이 코멘트해야

<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah.Errors" /> 

을,하지만 난 충분히 담당자가 없습니다.