我遇到了一个奇怪的问题,这是我的场景
- 一个 WCF 服务(名为WCF1)部署在带有 basicHttpBinding (启用流式传输)的 Web 服务器上
- 我有一个使用WCF1的 Windows 服务应用程序,并托管一个带有 namedPipeBinding (双工)的 WCF 服务(名为WCF2)。
- 一个使用WCF2并处理从它引发的事件的 Windows 应用程序(因为此服务是双工的)。
现在,如果我从 WCF2 上的 Windows 应用程序调用一个函数,该函数在普通机器上进一步调用WCF1的一个函数,它可以成功运行。
但是,当我在硬件防火墙后面(启用了 NAT)的机器上执行此操作时,WCF2 的函数成功调用,并且从 WCF1 上的 WCF2 调用的函数失败,超时已过期。如果我直接调用 WCF1 的函数而不使用 WCF2,它会成功运行。我知道,在 NAT 双工通信中。很麻烦,大多数情况下不支持。但是在WCF1和WCF2之间的通信中没有双工的作用,
如果有任何作用,那么我该如何防止它...,
注意:我无法禁用 NAT