7
我有一個WCF客戶端/服務與net.tcp傳輸。當我打開客戶端的WCF跟蹤時,我在跟蹤中看到以下錯誤(請參閱服務跟蹤查看器的截圖)。奇怪的是,WCF正在處理和恢復這個錯誤,我的客戶端沒有收到任何異常,並繼續工作。這種異常發生頻繁,隨機,但不是每個Web方法調用。 客戶端(Windows XP)身份驗證是Windows,服務由SPN標識,服務在NLB(Windows Server 2003)後面的Windows服務上自託管。 任何人都可以解釋我在這裏發生了什麼。奇怪的WCF net.tcp異常
從跟蹤XML的異常堆棧跟蹤是:
<ExceptionString>
System.ServiceModel.Security.MessageSecurityException: The server rejected the upgrade request. ---> System.ServiceModel.ProtocolException: Error while reading message framing format at position 0 of stream (state: ReadingUpgradeRecord) ---> System.IO.InvalidDataException: More data was expected, but EOF was reached.
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
</ExceptionString>
:
作爲背景,我們的一些用戶報告了很多例外,我正在調查爲什麼只有一些PC似乎擁有它。所以我在自己的電腦上開始了一個服務跟蹤,我很驚訝,因爲這些例外從未被客戶收到,WCF正在吞噬它們。 我在想這個MessageSecurityException是否最終導致一些客戶端獲得真正的異常。 某些客戶端記錄此例外情況: 無法連接到net.tcp:// myservice:9501/SomeService。連接嘗試持續時間爲00:00:21.3873440。 TCP錯誤代碼10060: – softveda 2010-09-03 01:06:55
您提到了NLB。你使用粘性會話(會話親和力)? – 2010-09-03 07:55:37
端口規則中沒有NLB會話關聯無。該服務使用自定義net.tcp綁定,2分鐘空閒超時和1分鐘超時退出。但是,我發現我們意外地使用了persession instancecontextmode,因爲有人認爲這是默認設置。我很快就會把它改成percall。 – softveda 2010-09-08 10:47:01