1

我遇到了一个奇怪的问题,这是我的场景

  1. 一个 WCF 服务(名为WCF1)部署在带有 basicHttpBinding (启用流式传输)的 Web 服务器上
  2. 我有一个使用WCF1的 Windows 服务应用程序,并托管一个带有 namedPipeBinding (双工)的 WCF 服务(名为WCF2)。
  3. 一个使用WCF2并处理从它引发的事件的 Windows 应用程序(因为此服务是双工的)。

现在,如果我从 WCF2 上的 Windows 应用程序调用一个函数,该函数在普通机器上进一步调用WCF1的一个函数,它可以成功运行。
但是,当我在硬件防火墙后面(启用了 NAT)的机器上执行此操作时,WCF2 的函数成功调用,并且从 WCF1 上的 WCF2 调用的函数失败,超时已过期如果我直接调用 WCF1 的函数而不使用 WCF2,它会成功运行。我知道,在 NAT 双工通信中。很麻烦,大多数情况下不支持。但是在WCF1WCF2之间的通信中没有双工的作用,
如果有任何作用,那么我该如何防止它...,
注意:我无法禁用 NAT

4

0 回答 0