指定WCF客户端源端口

本文关键字:客户端 WCF 指定 | 更新日期: 2023-09-27 18:20:25

我有一个WCF服务发布在某个地址上,我想通过Visual Studio中生成的代理与它通信。

我希望来自代理的消息使用特定的TCP源端口发送,但它显然在每次调用时都会分配一个随机端口。

问题是:我有两个主机A和B正在运行WCF服务(每个主机上都相同),主机A在地址AdA和端口PA上运行服务,主机B在地址AdB和端口PB上运行服务。主机A向主机B发送消息。主机B在消息之后执行一些内部操作,然后向主机A发送消息。问题是,当主机A在B上调用Web方法时,它会发送一个带有随机src端口的TCP消息,其中一个端口与A托管服务的端口不匹配,因此不会在A上调用Web方法,因为WCF分配的源端口与发布服务的端口不匹配。

到目前为止,我一直在使用BasicHttpBinding。

我怎样才能做到这一点?

谢谢。

指定WCF客户端源端口

netPeerTCP绑定允许您指定出站端口号。

问题是,当主机A调用B上的Web方法时,它会发送带有随机src端口的TCP消息,以及与A承载服务的端口,因此Web方法不是在A上调用,因为WCF分配的源端口不匹配发布服务的端口。

没有理由仅仅因为A的web方法接收到来自另一个web服务的回复就调用它。您必须显式调用该服务。如果您希望在A调用B的响应中调用A,那么服务B中的代码必须进行该调用。尽管如果你有两个这样互相调用的方法,它只是来回的,所以你需要一个退出条件。也许如果你能提供更多关于你正在努力实现的目标的细节,我可以提供更多的建议。

我认为不可能为任何类型的网络通信分配源端口,因为它必须是唯一的。

源端口是TCP/IP分配给客户此分配的号码是网络地址转换的方式方法确定向哪个用户发回响应(请参阅NAT)。尽管在成千上万的组织,每个TCP/IP网络都会跟踪自己的仅在该网络中使用的指定号码。端口号和IP地址称为"套接字"

阅读更多:http://www.answers.com/topic/port-number#ixzz1jLxPzCVe