LoginSignup
5
3

More than 5 years have passed since last update.

SvcTraceViewerでWCFのサービスを追う

Posted at

WCFのサービスがトレースできますよ

WCFサービスのやり取りを追うのは大変です。
Wiresharkといったパケットモニタでも見ることが出来ますが、解析するのは・・・無謀かなと。名前付きパイプによるバインドを使っているとパケットモニタでは見ることが出来ませんし。

そこで登場するのが、なんとWindows標準で用意されている SvcTraceViewer ですよ。SvcTraceViewer を使うと WCFの処理順が追えます。リスト表示はもちろんですが、サーバー側とクライント側といった複数のファイルを追加で読み込めるので、プロセス間のやりとりをグラフ表示で確認することも出来ます。

前準備

Web.config や app.config にトレースの構成を記述します。
本番環境に入れる場合は処理負荷がどんなものかを確認したほうが良いです。
アプリケーションを実行するとトレースファイルが出力されます。

app.config
<system.diagnostics>
    <trace autoflush="true" />
    <sources>
            <source name="System.ServiceModel" 
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="sdt" 
                   type="System.Diagnostics.XmlWriterTraceListener" 
                   initializeData= "SdrConfigExample.e2e" />
            </listeners>
         </source>
    </sources>
</system.diagnostics>

SvcTraceViewer でトレースをみる

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools
などにある SvcTraceViewer.exe を起動します。
ファイルメニューの開くと、追加によって複数のファイルを同時に見ることが出来ます。
ファイルを個別で見ると時系列を追うのがすごく大変ですが、これは便利です。

リスト表示ですね。
処理時間が確認できます。

IC382853.jpeg

プロセス間グラフ表示が出来ますし、スレッド間グラフも表示できますよ。

IC382854.jpeg

画面上部にある開始と終了で、表示する時間を絞り込むことが出来ます。

Screenshot - 2016_09_03 , 17_25_31.png

参考

https://msdn.microsoft.com/ja-jp/library/ms732023(v=vs.110).aspx
https://msdn.microsoft.com/ja-jp/library/aa751795(v=vs.110).aspx
http://www.codeproject.com/Articles/17258/Debugging-WCF-Apps

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3