我有一个带有 net.tcp 传输的 WCF 客户端/服务。当我在客户端打开 WCF 跟踪时,我在跟踪中看到以下错误(请参阅服务跟踪查看器的屏幕截图)。奇怪的是 WCF 正在处理和恢复这个错误,而我的客户端没有收到任何异常并且它继续工作。此异常会频繁、随机地发生,但不会在每次 Web 方法调用时发生。 客户端 (windows XP) 身份验证是 windows,服务由 SPN 标识,服务在 NLB (windows server 2003) 后面的 windows 服务上自托管。 任何人都可以向我解释这里发生了什么。
来自跟踪 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>
:
最佳答案
不确定真正的问题是什么以及它是否与流式传输有关(我会深入探讨)。无论如何,您可以尝试在服务器端捕获异常并抛出 CommunicationException。
catch (Exception ex)
{
throw new CommunicationException(ex.Message, ex);
}
这样客户端代理不应该忽略异常并且它的状态应该是“Faulted”。
关于wcf - 奇怪的 WCF net.tcp 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632338/