2016-09-30 50 views
1

背景:WCF服務無限期地重試消息

我在生產中看到了一個奇怪的情況。我們有一個WCF服務,它有兩個端點(HTTP和https)。 HTTP端點使用Wshttpbinding,將Security = Message和Authentication作爲Windows。 Https端點使用Wshttpbinding和Security = Transport和Authentication作爲證書。此服務由3個客戶端使用。其中兩個使用https端點進行通信,一個客戶端(Windows服務)使用HTTP端點。

問題:

WCF服務連續地處理未通過任何提及的3個客戶端的發送的消息。我試圖阻止所有3個客戶端,並仍然通過該服務傳輸數據。我很難弄清楚服務正在處理這些消息的位置。 WCF服務可能緩存任何以前未處理的消息嗎?我不知道發生了什麼事。

下面是我試過的東西:

一)重新啓動應用程序池幾次,但沒有解決問題。

b)停止並重新啓動所有3個不同組合的客戶端,只是爲了篩選出哪一個客戶端負責這些消息。我有一種情況,所有3個客戶端都關閉,但仍然看到服務處理消息。

c)我既沒有重新啓動生產服務器也沒有重新啓動IIS,因爲它在生產服務器上,我擔心這樣做。但是,如果能解決問題並且有任何技術原因可以幫助重新啓動,我可以給它一個解決方案。

我用完了所有的想法,如果我可以嘗試任何輸入,我將不勝感激。

+0

使用Wireshark https://www.wireshark.org/download .html來識別哪個主機正在將數據包發送到運行Web服務的主機的端口80 ...我敢肯定,有些客戶端在繼續發送請求的3個客戶端之一中運行... –

+0

當然,明天我會試試。如果你有任何其他的輸入,請讓我知道... – marak

+0

你也可以嘗試這個來確定哪個客戶端直接在您的WCF服務代碼中發送請求http://stackoverflow.com/questions/11048532/get-client- ip-address-in-a-wcf-service-hosted-using-https-443-bindings並將其記錄到日誌文件中,例如 –

回答