带有 netTcpBinding 的 WCF 路由服务

Posted

技术标签:

【中文标题】带有 netTcpBinding 的 WCF 路由服务【英文标题】:WCF Routing Service with netTcpBinding 【发布时间】:2015-02-04 11:02:55 【问题描述】:

我正在使用带有 netTcpBinding 的 Wcf 路由服务

我有一个名为 ServiceTwo 的 WCF 服务只公开一个 netTcpBinding 端点

我有一个使用 ServiceTwo 的客户端应用程序

然后我在它们之间有一个routingService,路由服务有两个端点,一个basicHttpBinding和一个netTcpBinding。路由始终使用 netTcpBinding 与 ServerTwo 通信。

我使用的是完整的 IIS 8.5,启用了 Http Activation 和 Non Http Activation,已经为 ServiceTwo 和路由服务设置了协议“http, net.tcp”。

对于以下这些场景,它可以工作

    如果客户端应用程序客户端直接消费ServiceTwo,不经过路由,使用netTcpBinding -> 工作正常

    或者客户端应用程序通过使用basicHttpBinding的路由调用ServiceTwo(路由总是使用netTcpBinding与ServerTwo通信)->它也可以正常工作。

但是对于使用 netTcpBinding 连接路由的案例客户端应用程序(路由总是使用 netTcpBinding 与 ServerTwo 通信)

我刚刚遇到如下异常:

未处理的类型异常 在 mscorlib.dll 中发生 System.ServiceModel.CommunicationException' 附加信息:套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题引起的。本地套接字超时为 '00:00:59.9659874'。

您能否告诉我一些我可能会错过并导致错误的事情 非常感谢。

问候

【问题讨论】:

【参考方案1】:

当我的客户端使用 SecurityMode.None 而不是我的服务时,我发生了这个错误。但我认为例外情况相当普遍。 因此,我建议您重新检查设置 ServiceChannel 的所有值,包括。您对服务和客户端的绑定。

顺便说一句:这个错误发生在我身上只有在客户端设置了安全模式服务没有!如果是反之,则会发生更有意义的异常。即:(ProtocolException - 这可能是由于不匹配的绑定(例如在客户端而不是在服务器上启用了安全性))

【讨论】:

以上是关于带有 netTcpBinding 的 WCF 路由服务的主要内容,如果未能解决你的问题,请参考以下文章

使用 netTcpBinding 为 WCF 服务启用基于证书的身份验证

BIG IP F5 WCF NetTCpBinding 性能不佳

WCF - 如何为 NTLM 身份验证配置 netTcpBinding?

使用 netTcpBinding 时,在 WCF 中实现加密的最简单方法是啥?

WCF - 在 nettcpbinding (c#) 中禁用安全性

使用 netTcpBinding 的慢(ish)WCF 连接速度