关于wcf:WSDualHttpBinding用于双工回调

关于wcf:WSDualHttpBinding用于双工回调

WSDualHttpBinding for duplex callbacks

将WSDualHttpBinding用于双工回调在实际情况下是否可以工作? 说,我有一个使用随机端口的.NET应用程序,该服务是否能够解析客户端的基地址和用于回调的端口?


一个问题的完整答案取决于"实际场景"是Intranet还是Internet场景。尽管WSDualHttpBinding在两种情况下均可工作,但仍有一些细节需要注意:

内联网

WSDualHttpBinding将在Intranet方案中使用预配置的自定义端口与您的.NET应用程序配合使用,"是",该服务将能够解析客户端的基址和端口以进行回调:具体说明如下。下面解释的原因是WSDualHttpBinding主要设计用于Internet。

可以在客户端和服务器上同时使用WCF的Intranet方案中的双工回调最好通过使用NetTcpBinding或NetNamedPipeBinding来实现。这些绑定分别使用TCP和ICP作为传输(而不是HTTP)和自定义二进制编码,这就是为什么在两侧都需要WCF的原因。对于回叫客户端,将重新使用用于通过绑定连接到服务的相同通道,而无需打开新端口。

互联网

在Internet场景中,有效的HTTP请求和响应仅在一个方向上传播,HTTP被设计为单向协议。因此,在使用WSDualHttpBinding时,WCF会为回调创建单独的HTTP通道。回答第二个问题:默认情况下,此回叫客户端的目标地址由客户端计算机的主机名和端口80组成。例如,如果客户端是开发计算机并安装了IIS,则在某些情况下将独占端口80,这将导致与原型应用程序发生冲突。这是此博客文章提出的解决方案以及ClientBaseAddress属性旨在提供帮助的内容。无论使用哪个端口(默认端口还是自定义端口),都必须确保正确配置了两侧的所有防火墙和路由器,以允许建立传出通道和单独的回调通道。

.NET应用程序也可以表示Silverlight应用程序。由于在浏览器中运行的Silverlight应用程序不能接受新的传入HTTP连接,因此带有其单独的后向通道的WSDualHttpBinding将不起作用。因此,PollingDuplexHttpBinding最初是在Silverlight 2中创建的,可以将其视为聪明的"窍门",以通过长时间保持请求通道开放(长时间轮询)并将其用作反向通道来解决HTTP是单向的这一事实。回拨给客户。这对客户端和服务器端都有很多影响,特别是与扩展有关。有关更多详细信息,请参阅我的博客中的这篇文章。

有了您特定的"实际情况"和用例的想法,希望这将帮助您确定正确的绑定以用于双工回调。


如果它是防火墙后面的应用程序,理论上是可以的。这取决于您所说的"现实世界";如果您的意思是"高性能",那么NetTcpBinding可能是更好的选择。


推荐阅读

    linux服务器分区命令?

    linux服务器分区命令?,系统,管理,信息,设备,时间,命令,基础,首次,平均,情况,l

    linux服务器上传命令?

    linux服务器上传命令?,服务,软件,平台,数据,工具,系统,手机,电脑,设备,官网,

    linux重新服务命令?

    linux重新服务命令?,服务,系统,网络,标准,工作,设备,命令,名称,信息,网络服

    linux服务器基本命令?

    linux服务器基本命令?,地址,系统,设备,网络,工作,标准,信息,电脑,命令,密码,l

    linux服务器下载命令?

    linux服务器下载命令?,服务,密码,系统,档案,工具,网络,公共,百度,地址,认证,l

    linux命令怎么停服务?

    linux命令怎么停服务?,服务,系统,状态,代码,跨行,软件,情况,第一,名称,命令,l

    linux服务端退出命令?

    linux服务端退出命令?,档案,命令,环境,异常,标准,网络,模式,终端,编辑,文件,l

    linux中启动服务命令?

    linux中启动服务命令?,服务,系统,命令,信息,工作,设备,网络,标准,名称,密码,l

    linux命令测试客户端?

    linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,l

    linux服务器常用命令?

    linux服务器常用命令?,工作,系统,地址,信息,命令,目录,管理,标准,设备,功能,

    linux筛选服务命令?

    linux筛选服务命令?,服务,系统,状态,软件,环境,主体,技术,号码,发行,名称,查

    linux服务器保存命令?

    linux服务器保存命令?,时间,状态,档案,电脑,命令,信息,位置,编辑,文件,模式,L

    linux服务器扫盘命令?

    linux服务器扫盘命令?,地址,工作,命令,目录,数据,单位,名称,系统,管理,信息,L

    linux命令切换服务器?

    linux命令切换服务器?,地址,名称,系统,环境,实时,命令,服务器,脚本,路径,版

    linux服务器搭建命令?

    linux服务器搭建命令?,系统,服务,软件,地址,平台,在线,密码,工具,环境,百度,l

    服务器重启命令linux?

    服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,

    linux服务端常用命令?

    linux服务端常用命令?,工作,地址,系统,网络,基础,命令,标准,工具,信息,管理,l

    linux禁用服务命令行?

    linux禁用服务命令行?,服务,系统,软件,管理,工具,信息,状态,平台,连续,技术,l

    linux停服务常用命令?

    linux停服务常用命令?,地址,工作,系统,命令,服务,信息,标准,管理,代码,进程,l

    linux服务器删除命令?

    linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,l