3

그래서 저는 elmeh를 영원히 사용했습니다.Elmah,로 변환합니다. Net4 vs2010, 서버 2008에서 실행되지 않습니다.

최근에 MVC3 .net4 및 vs2010으로 변환 된 응용 프로그램이 있으며 서버 상자 (XP 상자에서 개발 된 다른 응용 프로그램과는 반대)에서 개발되었습니다.

나는 일반적으로 ELMAH를 설정하고 작동하지 않는

... 이미 ELMAH.dll에 대한 참조를 가지고

, 그것은 내 CommonDLLs 폴더에 있습니다.

은 내가 sectiongroups가

<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="*" path="*.pdfx" type="JCDCHelper.Web.UI.RunAsASPXHandler, JCDCHelper.Web" /> 
      <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
</httpHandlers> 
<httpModules> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
</httpModules> 

내가 이메일 지원을위한 SMTP 섹션을 추가

<elmah> 
    <security allowRemoteAccess="1" /> 
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/ELMAH" /> 
    <!--<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />--> 
    <errorMail from="[email protected]" to="[email protected]" subject="Application: StudentPortal3G, Environment:Dev, ServerBoxName: Dev" async="true" /> 
</elmah> 

내가 모듈과 처리기를 추가 섹션을 추가

<system.net> 
    <!--Required for Elmah Mail Processing--> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
     <network host="10.10.10.10" port="25" defaultCredentials="true" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

I 고토 "~ \ ELMAH"폴더, 내 컴퓨터를 선택하고 네트워크 서비스 계정 폴더에 대한 모든 권한을

(단지의 경우, 모두에 대해 동일했다) 나는에 대한 라우팅을 설정 제공 elmah.axd 웹 페이지로 throguh 이동하십시오.

routes.IgnoreRoute("elmah.axd"); 

나는 위치 태그를 추가, 그래서 나는

<location path="elmah.axd"> 
    <system.web> 
     <authorization> 
     <!--<deny users="?" /> in prod and qa change to this, otherwise anyoen can look at the logs - EWB--> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

로그인하지 않고 elmah.axd 칠 수있다 그러나 나는 아무것도없이 ELMAH 이메일의 ELMAH 폴더에없는 XML 로그를 얻을 수없고, 404 goto elmah.axd

내가 무엇이 누락 되었습니까? 도움이 누락되었습니다.

감사합니다, IIS7에서

정확 합니

답변

2

당신의 Web.config의의 system.webServer 노드 아래 httpHandlers 및 httpModulea를 추가해야합니다.

이 스레드는 데 도움이 될 것입니다. 나는 <의 system.webServer> 섹션을 추가 그 기사 당 http://groups.google.com/group/elmah/browse_thread/thread/4bbef2f26e0c5fd1

+0

,하지만 지금은 웹 서버를 시작할 수 없습니다 "얻을, 내가 VS2010에서 디버깅하려고 할 때 그것을 주석 경우, 괜찮아요 .태그 바로 뒤에 추가했습니다. 아이디어가 있습니까? 일반 처리기 및 모듈과 함께 사용해 보았습니다. –

+0

알레시는 웹 서버 섹션을 컨버전스에 추가했습니다. 도구, 그 중 두 개를 가질 수 없습니다! 감사합니다! –

+0

여기에 같은 문제가 있습니다 - Windows Server 2008 r2는 Windows 8 IIS7이 아닌 "모듈"에 대해 매우 특별합니다. 따라서 두 개의 "모듈"섹션이있는 경우 system.web, 승 8 괜찮을거야,하지만 Windows Server 2008 R2 오류 500 경우 y 그거야. ELMAH 모듈이 설치된 다른 모듈과 동일한 "모듈"섹션에 있는지 확인하십시오. 거기에 있었어. 두 번째 "모듈"섹션이 프로덕션 web.config 변형에 의해 추가되면 이것은 특히 불쾌합니다 ... – philw