2009-12-17 5 views
1

WCF 채널이 어떻게 클라이언트에서 오류 상태로 들어가는 지, 왜 WCF 로깅을 사용하여 이유를 추적 할 수 있습니까?채널에 장애가 발생하는 이유를 추적하는 데 도움이되는 WCF 로깅은 무엇입니까?

코드에서 제공된 로깅을 활성화하려면 어떻게합니까?


편집 (채널 등 코드에서 설정보다는 각 측에 설정 파일이다) : 양측은 윈폼 응용 프로그램입니다, 그래서 web.config 파일이없는, 그러나 나는 응용 프로그램을해야합니까 .config 파일.

답변

4

로깅 코드를 추가 할 필요가 없습니다. 서비스 (Web.config의)와 클라이언트 (의 app.config) 모두에 이 추가

<system.diagnostics> 
<sources> 
    <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing"> 
    <listeners> 
     <add name="xml"/> 
    </listeners> 
    </source> 
    <source name="System.ServiceModel.MessageLogging" switchValue="Verbose"> 
    <listeners> 
     <add name="xml"/> 
    </listeners> 
    </source> 
</sources> 
<sharedListeners> 
    <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" 
    initializeData="c:\logs\logfilename.svclog"/> 
</sharedListeners> 
<trace autoflush="true"/> 
</system.diagnostics> 

사용 (SDK의 v6.0a에 포함 SvcTraceViewer.exe) 서비스 추적 뷰어는 볼 수 있어야 파일.

+0

감사합니다. log4net과 달리 system.diagnostics가 폴더를 만들지 않는 것처럼 보입니다. 따라서 c : \ logs 폴더를 만들 때까지는 위의 내용이 저에게 적합하지 않습니다. –

+0

맞습니다. 미안하다. –

1

(코드가 설정되어 있어도 system.diagnostics 요소를 사용하여 web.config에서 로깅을 사용하도록 설정할 수 있습니다. (1)(2)

또한 살펴 단계 연습에 의해 단계>here <을 가질 수 있습니다 : 여기

는 일부 MSDN의 링크입니다.

+0

미안하지만, 양측이 Winforms 응용 프로그램이므로 web.config 파일이 없지만 app.config 파일이 있습니다. –

+0

app.config에서도 동일한 작업을 수행 할 수 있습니다. –

0

어둠 속에서 약간의 발사가 있지만, 로깅보다 디버깅 문제 일 수 있습니다.

연결이 제대로 닫혀 있는지 또는 풀링되어 있는지 확인해야 할 수 있습니다. 커맨드 라인에서 netstat을 사용하여 서비스에 대한 열린 연결을 추적하여 연결이 닫혀 있는지 확인합니다.

관련 문제