WCF 추적을 설정하는 방법은 무엇입니까?


160

최신 정보:

WCF 추적 을 설정하려고 했지만 여전히 성공하지 못했습니다 ... 아래는 마지막 업데이트입니다.

아래 위치에 쓸 수있는 권한이 필요합니까?

  <system.diagnostics>
    <trace autoflush="true" />
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="sdt"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "@\\myservername\folder1\traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

.NET Framework 3.5를 사용하고 있습니다.

디버깅 목적으로 WCF 추적을 설정하는 단계별 지침은 무엇입니까?

답변:


230

WCF 서비스 에서 추적을 사용하기 위해 MSDN 에서 가져온 다음 구성을 적용 할 수 있습니다 .

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true" >
        <listeners>
             <add name="xml"/>
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
      <source name="myUserTraceSource"
              switchValue="Information, ActivityTracing">
        <listeners>
            <add name="xml"/>
        </listeners>
      </source>
    </sources>
    <sharedListeners>
        <add name="xml"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="Error.svclog" />
    </sharedListeners>
  </system.diagnostics>
</configuration>

로그 파일을 보려면 "C : \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcTraceViewer.exe"를 사용하십시오.

"SvcTraceViewer.exe"가 시스템에 없으면 "Windows 7 및 .NET Framework 4 용 Microsoft Windows SDK"패키지에서 다운로드 할 수 있습니다.

Windows SDK 다운로드

".NET Development / Tools"부분 만 설치하면됩니다.

무의미한 오류로 설치 중 폭격이 발생하면 Petopas의 Windows 7 SDK 설치 실패에 대한 답변으로 문제가 해결되었습니다.


18
파일이 생성 된 곳은 어디 Error.svclog입니까?
Nick Kahn

4
파일은 어셈블리와 동일한 디렉토리에 생성됩니다. 아마도 bin 디렉토리 일 것입니다. 서비스가 IIS에서 호스팅되는 경우 작업자 프로세스를 재활용해야 할 수도 있습니다.
Rohan West

9
응용 프로그램 풀-ID에 해당 폴더에 쓸 수있는 권한이 있는지 확인하십시오. 나는 보통, 내가 특정 사용자에게 \ 쓰기 액세스 읽기 부여 할 수 있습니다 이런 식으로 내 응용 프로그램 풀에 할당 된 전용 계정을 가지고
로한 웨스트

2
개발 환경에서 오류 파일 (initializeData = "Error.svclog")은 솔루션 프로젝트 내에 저장됩니다. 다른 위치로 변경해도 작동하지 않았습니다.
LCJ September

5
다음을 사용하여 폴더에 기록 할 수있었습니다 : initializeData = "C : \ wcflogs \ wcf_svclog.svclog"/>
Adrian Carr

32

web.config (서버)에서 추가하십시오.

<system.diagnostics>
 <sources>
  <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
   <listeners>
    <add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\logs\Traces.svclog"/>
   </listeners>
  </source>
 </sources>
</system.diagnostics>

1
폴더를 제외하고 dev에 액세스 할 수 없기 때문에 이와 같이 추가 initializeData="\\servername\drive$\Project\WCFTraces.svclog"/>했으며 서비스에 액세스하려고 시도한 후에 파일이 생성되는 것을 볼 수 없습니다.
닉 칸

5
기본적으로 버퍼링됩니다 (이를 변경할 수 있음). 앱 풀을 재활용하여 강제로 플러시 할 수 있습니다. 또한 앱 풀 ID가 해당 위치에 쓸 수 있는지 확인하십시오.
Christoph

20

Microsoft SDK 디렉토리로 이동하십시오. 이 같은 경로 :

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools

해당 디렉토리에서 WCF 구성 편집기 (Microsoft 서비스 구성 편집기)를여십시오.

SvcConfigEditor.exe

이 도구를 여는 다른 옵션은 Visual Studio 2017에서 "도구"> "WCF 서비스 구성 편집기"로 이동하는 것입니다.

wcf 구성 편집기

.config 파일을 열거 나 편집기를 사용하여 새 파일을 작성하고 진단으로 이동하십시오.

"Enable MessageLogging"을 클릭하십시오.

메시지 로깅 활성화

자세한 정보 : https://msdn.microsoft.com/en-us/library/ms732009(v=vs.110).aspx

동일한 디렉토리의 추적 뷰어를 사용하여 추적 로그 파일을 열 수 있습니다.

SvcTraceViewer.exe

WMI를 사용하여 추적을 활성화 할 수도 있습니다. 자세한 정보 : https://msdn.microsoft.com/en-us/library/ms730064(v=vs.110).aspx


2
이 GUI 유틸리티를 소개해 주셔서 감사합니다. 구성 파일을 훨씬 쉽게 편집 할 수 있습니다!
symbiont

Awesome.it는 Tracelog를 이해하는 데 많은 도움이됩니다.
ksrds

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.