2009-10-28 99 views
0

我有一個WCF應用程序,有幾千個客戶端連接到在IIS下運行的一對服務。我注意到,其中一些客戶進入掛起狀態,我試圖重現這一點。WCF客戶端應用程序掛起 - 需要repro通知

當第一次發現此問題時,我沒有修改限制配置,並將服務設置爲ConcurrencyMode.Single。我注意到的一件事是服務器上的IISReset導致許多客戶端掛起。然而,在我的本地機器上運行鍼對IIS的客戶端上拉同樣的特技似乎不會導致問題。

我在野外只捕獲了一次,但當時沒有啓用調試。我目睹的症狀是,客戶似乎試圖打開與Web服務器的連接,但沒有成功。在使用Fiddler進行監控時,我看不到嘗試到達服務端點。顯然這讓我懷疑客戶端代理。

對於發生了什麼,我有一個非常堅定的預感 - 即當服務拋出一個異常時,我一直使用「Close()」而不是「Abort()」,我相信這會導致通道變爲損壞。但考慮到努力得到一個新版本,我需要通過讓我自己的機器上的客戶端掛起來重現此問題,然後才能開始更改代碼。

我應該從哪裏開始?

由於提前,

roufamatic

回答

0

我想這是一個太模糊的問題,雖然我大多好奇人們會提出什麼建議。事實證明,我的工作站和一個生產環境之間存在着不小的差異,一旦解決問題,我就可以看到問題所在。在這種情況下,以某種方式使用Fiddler觀看流量實際上防止了錯誤的發生!現在再問一個問題。

0

你有沒有日誌記錄是否已開啓?這可能有助於診斷問題。它可以在配置中完全完成,因此不需要構建新版本。使用服務配置編輯器工具將其設置完成。 Visual Studio 2008 Training Kit有關於如何使用日誌記錄和日誌查看器的很好的教程。

相關問題