【推薦】捕獲WCF服務端與客戶端產生的通訊數據並分析
現在很多都在采用WCF做為服務端,在我們的.NET快速開發整合框架(RDIFramework.NET)中也不例外,在采用這種方式時,我們經常需要知道我們的客戶端,在訪問WCF服務端時,WCF服務端究竟做了那些工作,也就是運行WCF服務端與客戶端后,我們想查看WCF服務端與客戶端產生通訊數據。如何才能查看產生的通訊數據呢?這就是微軟提供的Windows Communication Foundation (WCF) 服務跟蹤查看器,它可幫助分析 WCF 偵聽器所生成的活動跟蹤 (*.svclog) 診斷跟蹤為合並、查看和篩選跟蹤消息提供了一種簡單方法,可以診斷、修復和驗證 WCF 服務問題。
在把WCF服務部署到Windows服務時,對於這個服務端其運行的全過程在開發環境下,我們需要予以把握。如何對WCF應用程序的消息進行跟蹤呢,本文將.NET快速開發整合框架(RDIFramework.NET)中實際的環境進行模擬整個過程。
一、配置WCF應用程序支持消息的跟蹤
要想跟蹤WCF應用程序運行過程中的相關信息,我們需要對WCF應用程序進行部署,在.NET快速開發整合框架(RDIFramework.NET),WCF服務默認部署在Windows服務下,服務啟動后,如下圖所示: 要想捕獲軟件在運行過程中調用WCF服務所產生的一系列消息,我們首先需要對服務端的App.Config配置文件作相應的更改,如下圖所示:
同時,我們還要配置捕獲的信息所存放的地方:
通過以上的配置,我們再開啟我們的WCF服務,開啟后運行軟件做一些操作,可以看到在我們:c:\temp\RDIFramework.svclog 下已經記錄了相應操作所產生的WCF消息。
二、查看WCF產生的消息
對於WCF的消息跟蹤主要有Microsoft Service Trace Viewer(服務跟蹤查看器)和tcpTrace這兩個。服務跟蹤查看器工具功能比較強大可以了解 WCF 偵聽器生成的診斷跟蹤信息,從而找到錯誤的根本原因。該工具提供了一種輕松查看、分組和篩選跟蹤的方法,以便可以診斷、修復和驗證 WCF 服務的問題,但是使用之前需要在服務端作相應的配置(如上,我們的簡單配置過程)。tcpTrace其實就是一個通過端口映射來捕獲Tcp包的工具使用起來非常簡單,由於WCF的很多綁定都會走tcp協議因此使用該工具來捕獲數據包會非常方便。下面我們就使用Microsoft Service Trace Viewer(服務跟蹤查看器)來查看我們跟蹤WCF運行過程所產生的消息。
要打開服務跟蹤查看器,可以通過使用命令窗口定位到 WCF 安裝位置 (C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin),然后鍵入 SvcTraceViewer.exe,可以啟動服務跟蹤查看器。或者按下圖操作也可打開服務跟蹤查看器:
打開服務跟蹤查看器后,我們通過“服務跟蹤查看器”打開我們跟蹤的消息記錄,通過WCF服務端的配置,跟蹤的消息記錄存放在C:\temp\RDIFramework.svclog,打開后如下圖所示:
通過這個窗口,我們可以非常清楚全面的查看整個操作與運行過程,以讓我們可以診斷、修復和驗證 WCF 服務問題。通過“服務跟蹤查看器”,我們可以方便的查看跟蹤數據,篩選跟蹤數據,查找跟蹤的數據,定位跟蹤數據等,讓我們的服務端應用程序在發布前做這樣的評估,可以更加的健壯,當然了,跟蹤也是大耗性能的,因此,在正式發布后應該關閉對WCF服務的跟蹤。