나는 참조한 클래스 라이브러리에서 메서드를 호출하는 ASP.NET 4.5 웹 응용 프로그램 (IIS 7.5에서 실행)이 있습니다. 처리되지 않은 예외가있을 때 로그에 ELMAH를 추가하려고합니다. ELMAH를 NuGet과 함께 설치했습니다. 그것은 위대한 작품. 문제는 클래스 라이브러리에서 오는 예외를 기록하지 않으며 웹 응용 프로그램에서 오는 예외 만 기록한다는 것입니다. 클래스 라이브러리가있는 ASP.NET 웹 응용 프로그램에서 ELMAH 사용
나는 나의 클래스 라이브러리에서 시도 캐치를 추가하는 시도와 함께 수동으로 예외를 기록하려고 :ErrorSignal.FromCurrentContext().Raise(e);
그러나 이것은 아무것도하지 않습니다.
웹 응용 프로그램과 클래스 라이브러리 모두에 ELMAH를 설치하고 참조해야합니까? 그리고 web.config는 클래스 라이브러리가 사용할 핸들러와 모듈을 알기에 충분할 것입니까? 또는 클래스 라이브러리에 다른 구성을 추가해야합니까?
나는 웹 응용 프로그램 및 클래스 라이브러리 모두가 packages.config있는 것으로 나타났습니다하지만 그것은 단지 포함 :이 항목에 대한 유래에 많은 페이지를 발견했지만 작동 답을 찾을 수 없습니다
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="elmah" version="1.2.2" targetFramework="net45" />
<package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" />
</packages>
나를.
어떤 사람들은
ErrorLog.GetDefault(HttpContext).Log(new Error(errExc));
를 사용하는 것이 좋습니다 그러나 HttpContext를 사용할 수 없습니다. 나는 HttpContext 대신에 null을 사용하려했지만 어느 쪽도 도움이되지 않았다.
ELMAH를 참조해야하는 클래스 라이브러리에서 ErrorLog.GetDefault (null) .Log (새 오류 (errExc))를 시도해보십시오. – ThomasArdal