2012-07-31 2 views
1

localhost에서 MVC3 응용 프로그램의 테스트를 실행할 때 NLog 응용 프로그램에서 전자 메일을 보내지 않도록 설정하는 방법을 아는 사람이 있습니까? 웹 서버에 배포 할 때 응용 프로그램이 오류가 발생하는 경우에만 NLog에서 전자 메일을 보내도록합니다. 그것을 성취하기 위해 무엇을 써야합니까? 당신은 시도 할 수로컬 호스트에서 MVC3 응용 프로그램을 실행할 때 NLog에서 전자 메일을 보내지 않도록하는 방법

감사

+0

@Yasser 저는 4 가지 질문 만하고 두 가지 답변을 얻었습니다. 내 말은, 정확하지 않은 대답을 받아 들일 필요가 없다는 것입니다. –

+0

NLog는 전자 메일을 보내기 위해 어떤 설정을 사용합니까? 일반 system.net/mailSettings? –

+0

@SteenT 일반 system.net 설정이라고 생각합니다. 예 :) 다음은 메일 서비스를 추가 할 때 사용한 문서에 대한 링크입니다. http://nlog-project.org/wiki/Mail_target –

답변

1

는 메일이 메일 설정을 변경하여 전송 "중지":

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
       <specifiedPickupDirectory pickupDirectoryLocation="c:\whateverfolder"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

이 컴퓨터의 폴더에서 전자 메일을 내려 것. 이것은 실제로 메일을 중단 시키지는 않지만 메일이 전송되는 것을 중지시킵니다.

또한 수동 또는 자동 테스트를 실행하는 경우 전자 메일이 "전송"되고 있는지 쉽게 확인 할 수 있습니다.

+0

이 해결책을 수락합니다. "일시적인"해결책으로, 그러나 나는 진짜로 누군가가 진짜 해결책으로 저를 도울 수있는 경우에 진짜로 평가할 것입니다 : –

+0

나는 NLog로 일하지 않으며, 그러나 당신은 구성 파일에서 저 "Mail"표적을 제거 할 수 있 었는가? –

+0

당연히 할 수 있겠지만, 웹 서버가 에러를 쳤을 때 어떤 이메일도받지 못할 것입니다 :) –

1

이 경우 filters을 사용할 수 있습니다. 서버 이름이 localhost 인 경우 when-filter을 사용하여 메일 대상에 대한 메시지를 필터링 할 수 있습니다. 이것은 localhost를 사용하여 사이트를 요청한다고 가정합니다. 그러나 조건으로 Layout renderer을 사용할 수 있습니다.

나에게 적합한 아래 설정 예를 참조하십시오.

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<targets> 
    <target xsi:type="Mail" name="m" layout="${message}" subject="Log" 
      to="[email protected]" from="[email protected]" body="${message}" 
      smtpServer="localhost"> 
    </target> 
</targets> 
<rules> 
    <logger name="*" minlevel="Fatal" writeTo="m" > 
    <filters> 
     <when condition="equals('${aspnet-request:serverVariable=SERVER_NAME}','localhost')" action="Ignore" /> 
    </filters> 
    </logger> 
</rules> 
</nlog> 
+0

안녕하세요. 당신이 아마 볼 수 있듯이 나는 내 질문에 대한 내 대답을 제거하기로 표결했다. 나는 단순히 솔루션을 충분히 테스트하지 않았기 때문에 질문에 너무 열심히 대답했습니다. 어쨌든, 그래서 당신의 솔루션을 시도했지만 결과가없는 것이 두려웠습니다. 기본적으로 내 필터에 "필터"태그를 복사하여 기본적으로 귀하의 것과 동일하게 보이지만 결과적으로 "". 이걸 가지고 나를 도울 수 있다고 생각한다면 정말 대단 할 것입니다 :) –

+0

@ MarcusÅberg 어떤 로그 버전을 사용하고 있습니까? 나는 최신 NuGet 패키지를 사용했다. web.config 또는 별도의 NLog.config (예 : 나 같은)에 NLog 구성이 있습니까? – ccellar

+0

NLog 버전 2.0을 실행 중입니다. 나는 별도의 파일에 NLog 설정을했지만 지금은 정확히 동일한 코드 임에도 불구하고 web.config로 복사됩니다. –

관련 문제