wcf - 奇怪的 WCF net.tcp 异常

标签 wcf tcp wcf-security

我有一个带有 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. ---&gt; System.ServiceModel.ProtocolException: Error while reading message framing format at position 0 of stream (state: ReadingUpgradeRecord) ---&gt; System.IO.InvalidDataException: More data was expected, but EOF was reached.
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
</ExceptionString>

Screenshot :

最佳答案

不确定真正的问题是什么以及它是否与流式传输有关(我会深入探讨)。无论如何,您可以尝试在服务器端捕获异常并抛出 CommunicationException

catch (Exception ex)
{
    throw new CommunicationException(ex.Message, ex);
}

这样客户端代理不应该忽略异常并且它的状态应该是“Faulted”。

关于wcf - 奇怪的 WCF net.tcp 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632338/

相关文章:

WCF 和多种安全模型

c# - 强制 WCF 在客户端代理中创建 xml 命名空间别名

javascript - 循环ajaxcallback(WCF服务)

wcf - 如何删除 ServiceHost 持有的大对象堆上的 Byte[]

sockets - 如何与 Rust 中的反向 shell 交互?

c - 为什么交错工作时 TCP 写入延迟更糟?

.net - 使 WCF 更易于配置

c - 如何强制部分写入来测试网络服务器

Azure ACS : ACS50000 error on getting ACS token

wcf - 自定义 UserNamePasswordValidator 可以向 WCF session 添加内容吗?