2012-09-22 154 views
1

我有一個WCF Restful服務託管在我的Windows應用程序中。如何調試WCF服務?

該服務的客戶端是移動應用程序。

客戶端調用服務以及消息傳遞給應用程序和執行工作。

,我現在所面臨的問題是,應用程序工作正常,在大多數情況下。但它不適用於某些機器和網絡設置。

給出一個更好的主意: 該應用程序不在連接到路由器A的計算機1上工作。現在,當我更改並將其連接到路由器B時,同一應用程序開始在同一臺計算機上工作。

同樣,應用無法正常運行在連接到路由器A.現在我改機和保持連接到同一個路由器MACHINE1,應用程序工作正常。

我無法弄清楚問題所在。有關如何調試此問題的任何想法?

任何幫助表示讚賞。

回答

5

我會打開跟蹤,並在WCF服務消息記錄。這可以在服務的web.config/app.config文件中完成,最容易通過Visual Studio中的WCF服務配置工具在工具菜單下提供(注意:一旦打開此工具一次,您將能夠關閉它,然後右鍵點擊你的應用程序/ web.config文件,並在Visual Studio會話期間從上下文菜單中選擇'編輯WCF配置',並使該文件在工具中自動打開)。在WCF配置編輯器中,導航到診斷部分,您可以打開跟蹤和消息登錄。注意正在創建日誌文件的位置和/或將路徑調整到更理想的位置。我還建議啓用自動刷新功能,以便更頻繁地將信息寫入日誌。您可能需要在跟蹤會話後循環該服務,以確保日誌文件包含所有相關信息。現在

,從非工作配置打服務。使用svctraceviewer.exe檢查日誌,您可以在程序文件下的SDK文件夾中找到它。查看日誌中是否有任何內容跳出來,如果不是,則清除服務器上的現有日誌文件,並檢查來自有效會話的一組日誌文件,以嘗試對比這些差異。

這裏是MSDN關於WCF跟蹤一個鏈接,可能會有所幫助: http://msdn.microsoft.com/en-us/library/ms730342.aspx

+0

另一件可能適用於您的事情是在服務器機器上安裝Visual Studio,或安裝Visual Studio遠程調試服務並嘗試附加到服務器上的服務主機。爲了能夠進入代碼,您必須確保服務器上的二進制文件是經過調試編譯的並具有pdb文件。有關遠程調試的更多信息,請查閱http://msdn.microsoft.com/en-us/library/y7f5zaaa(v=vs.100).aspx。 – codechurn

+0

謝謝你真的很清楚解決這個問題。 – Sandeep

0

你可以嘗試使用像Fiddler工具來檢查和比較的消息在不同的環境中被交換。

+0

謝謝喬。我嘗試過,但交換的消息在機器上是一樣的。 – Sandeep

0

爲了達到你的目的,你可以啓用跟蹤WCF服務。在這個主題上已經有一個關於計算器的鏈接。

How to turn on WCF tracing?