2010-09-21 98 views
5

我在解密WCF跟蹤文件時遇到了問題,我希望有人可以幫助我確定管道中哪些地方會導致延遲。 「處理消息XX」的跟蹤如下所示,其中活動邊界和傳送到執行我的服務代碼(大約需要50ms)的「處理操作」之間的延遲時間爲997ms。WCF跟蹤日誌分析 - 幫助

Processing Message trace

首先,我不確定我是否正確理解「時間」列表示開始時間的活動項目。我認爲是這種情況,因爲鑽入「處理操作」軌跡會顯示第一個時間戳記等於上述「處理操作」項目跟蹤中顯示的時間戳記的活動列表。

我的主要問題是:如何確定997ms時間內發生了什麼?在我瞭解服務跟蹤查看器時,似乎這種活動類型涉及「傳輸或安全處理」,這導致我認爲這是一個網絡問題,但我無法確定。

如果相關,下面是深入到「處理行爲」跟蹤的快照。

Processing Action trace

有沒有人對如何進一步深入到這個活動查明原因延誤的一些見解?

(我應該提到的是,響應時間從大約60毫秒超過一整秒變化到,並且似乎只在特定的環境中,這進一步導致我一個網絡問題的主意,這樣做)

預先感謝您!

回答

0

我建議增加一個額外的跟蹤源特別是網絡跟蹤的跟蹤源看到How to: Configure Network Tracing

您可以System.Net和的System.Net.Sockets。這應該有助於確認您的網絡問題。另外,您提到所涉及的活動涉及傳輸或安全處理,在以前的經驗中,我發現如果您正在使用基於證書的安全性來使用證書進行客戶端身份驗證或消息安全性,則WCF通道可能會受到影響通過遍歷證書鏈的延遲來驗證證書。這可能不適用於您,因爲您可能沒有使用基於證書的安全性。

2

我遇到了同樣的問題。我的傳輸時間從100毫秒到4秒不等。我在服務器上安裝了Wireshark,發現了很多網絡數據包傳輸錯誤。令人印象深刻的是,網絡堆棧可以將其全部整理出來,並且最終消息通過。最後我注意到服務器網卡驅動程序的「速度和雙工」設置被設置爲100Mb Full。測試客戶端在Auto上,它們之間有幾個開關。我想所有的設備都可以解決這個問題,但顯然不是。將服務器值更改爲自動解決了網絡錯誤和跟蹤傳輸延遲消失。