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