我有一个小问题,
如果我在IIS 7.0中托管NetTcpbinding WCF服务,并且我想从客户端应用程序调用此服务,那么这将用于通信的格式。
是否有任何规则说明,所有NetTcpbinding都不应该在IIS上托管,而是必须在控制台应用程序或Windows服务上托管.. ??
当我想要去TcpNet绑定的时候.. ??
假设我有两个端点一个用于WsHttpbinding,另一个是NetTcpbinding并在IIS中部署服务然后如果我想从客户端应用程序使用NetTcp端点那么如何.. ??这是正确的方法......?在这种情况下......
谢谢, Sukesh。
答案 0 :(得分:0)
NetTcpBinding类信息:
http://msdn.microsoft.com/en-us/library/ms576421.aspx
NetTcpBinding默认生成运行时通信堆栈,它使用传输安全性,TCP用于消息传递和二进制消息编码。此绑定是Windows Communication Foundation(WCF)系统提供的适用于通过Intranet进行通信的选择。
2。 没有。甚至还有关于如何做到这一点的好文章:
3。 回到课程信息:
更一般地说,HTTP系统提供的绑定(如WSHttpBinding和BasicHttpBinding)配置为默认打开,而NetTcpBinding绑定默认情况下关闭,因此您必须选择加入以获得支持,例如,对于其中一个WS- *规范。这意味着TCP的默认配置在端点之间交换消息的速度要快于默认情况下为HTTP绑定配置的消息。
这意味着由于预期的附加协议层(http层和WS- *规范层),此绑定不会执行basicHttpBinding和WSHttpBinding所执行的所有更高级别的处理。因此,这是一种性能更高的绑定配置,可以在您的服务消息回复中以更快的周转时间为代价,但会丢失您的http层(客户端不再只是HTTP POST肥皂信封到您的服务中)。
4。 我将设置两个单独的服务端点(一个TCP和一个WSHttp)来实现相同的接口。然后,您可以在客户端设置两个客户端配置项,再次使用不同的绑定配置,但调用相同的接口。然后你可以加载任何一个。
<client>
<endpoint name="WSEndpoint" address="http://address/WSEndpoint.svc" binding="WSHttpBinding" contract="Your.Contract.Namespace"/>
<endpoint name="TCPEndpoint" address="http://address/TCPEndpoint.svc" binding="NetTcpBinding" contract="Your.Contract.Namespace"/>
</client>