문제

나는 이것이 설정하기 쉽다는 것을 알지 못한다. 설정 구성에 누락 된 단계가없고 올바르게 작동하지 않거나 실제로 목적을 이해하지 못합니다. 여기에 확실히 잘못된 것이 있습니다. 문제는 분명히 나 여야합니다. 나는 이것을 작동시키지 않습니다. 내가 한 일은 다음과 같습니다.

새로운 MVC 응용 프로그램을 작성하십시오. About.aspx 페이지에 다음을 배치하십시오.

<% 새로운 예외 ( "blah"); %> 여기에 콘텐츠를 넣으십시오.

페이지를 누르십시오. 예외적으로 노란색 화면을 가져옵니다.

빈 디렉토리에 elmah.dll을 추가하십시오.

web.config 파일 구성에 추가 :

<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>

httphandlers 섹션에 다음을 추가하십시오.

<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

모듈 섹션에 추가 :

<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>

핸들러 섹션에 추가 :

<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" preCondition="integratedMode" type="Elmah.ErrorLogPageFactory, Elmah"/>

Elmah 섹션 추가 :

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

여기서 궁금한 점은 그 문자열의 ".xmlfileerRorlog"부분이 "elmah.dll을 볼 때"반사기의 elmah.dll을 볼 수 없음을 나타내는 ressharper 오류로 빨간색으로 표시되는 것입니다. 두 공개 생성자 중 하나에서 "문자열"또는 "IDIcationary".

VS 2008과 함께 Windows Vista X64를 실행하고 있습니다. CO_OWNER로서 APP_DATA에 대한 권한을 설정하고 있습니다.

그만큼 http : // localhost : xxxx/elmah.axd 페이지가 나오고 오류가 표시되지 않습니다. "About"페이지를 다시 누르면 여전히 노란색 화면이 표시되고 Elmah.axd는 여전히 APP_DATA 폴더에 오류가 표시되지 않습니다.

CustomERRORS를 대체하고 관련 페이지를 만들었습니다.

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm" />

사용자 정의 페이지는 표시되지만 Elmah.axd는 여전히 "오류 없음"을 보여줍니다. APP_DATA는 여전히 비어 있습니다!

내가 사용한이 설정을 시작하는 소스 : code.google.com/p/elmah/wiki/mvc

그래서 내가 어디에서 엉망 이니?

~-= Mike =-~

도움이 되었습니까?

해결책

ErrorLogModule이 두 가지에 있는지 확인하십시오 configuration/system.web/httpModules (개발 웹 서버에있는 경우 사용) 및 configuration/system.webServer/modules (IIS7에 의해 사용). 다음은 프로젝트에서 Web.config의 조각입니다. 현재 작업 중입니다.

<?xml version="1.0"?>
<configuration>
    <system.web>
        <httpModules>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
        </httpModules>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="ErrorLog" />
            <remove name="ErrorMail" />
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
        </modules>
    </system.webServer>
</configuration>

도움이 되었기를 바랍니다

다른 팁

이 섹션을 제거하십시오 :

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

이는 Elmah가 기본 메모리 로깅 만 사용하도록 설정되었음을 의미합니다. 파일 권한이 아니라는 것을 알기 때문에 촬영 문제가 발생합니다. 따라서 인 메모리 로깅으로 작동하면 XML 파일에 로그인하도록 설정할 수 있습니다.

이 stackoverflow 질문을 확인하고 싶을 수도 있습니다. Elmah가 ASP.NET MVC [HandleERROR] 속성으로 작업하도록하는 방법은 무엇입니까?, 그것은 Atif Aziz 자신이 대답했습니다.

hths, 찰스

Nuget에서 설치했습니다 elmah 그리고 elmah on XML log, 내가 액세스 할 수는 있지만 예상 기능을 얻지 못했습니다. http://localhost/elmah.axd, 그러나 오류 캡처는 없습니다.

App_Data 폴더의 계정 IIS_IUSERS에 대한 쓰기 권한을 부여했으며 HTTP 404 오류 및 MVC 인프라 외부의 오류에서 작동하기 시작했습니다. 그러나 MVC 내부에서 예외를 기록하지 않았습니다. 솔루션이 설치되었습니다 Elmah.mvc Nuget의 패키지와 모든 예외를 캡처하기 시작했습니다.

구성이 정상이면 설치 만하면됩니다. elmah.mvc Nuget의 패키지는 HTTP 404뿐만 아니라 MVC 내부에도 로그를 저장해야합니다.

문제는이 줄입니다

  <customErrors mode="On" defaultRedirect="GenericErrorPage.htm">

교체하십시오

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top