2011-03-23 129 views
0

我在这个类似聊天的应用程序中使用双工WCF合约,我已运行。 (显然不是真正的聊天,但为了考虑它的兴趣,你可以认为它足够相似)。WCF双工与DHCP?

问题是,许多谈论此合同的客户端正在运行dhcp,并且我无法对此做任何事情。

什么是处理与DHCP的双工通信的最佳方式?我发现一个设置<compositeDuplex clientBaseAddress="Uri"/>这意味着我可以在运行时更新此值....似乎有点kludgy。

更新 我发现在我的WCF服务器日志中,部分问题是它将主机名放在响应地址中。我在这里做错了什么?

感谢

+1

我使用WCF约一个月,认为这是一个神奇的网络问题解决方案。我错了。我最终使用.NET中包含的套接字API(System.Net.Sockets);也节省了很多麻烦,加上它是跨平台的(通过Mono)。 – IDWMaster 2011-03-23 22:36:20

+0

DHCP与您的问题有什么关系? – 2011-03-24 01:49:01

+0

@John,问题似乎是服务器需要在客户端打开一个端口,但是当客户端连接时,它只提供其主机名,而不是其完整的IP地址来响应。 – Beta033 2011-03-24 15:28:25

回答

1

说白了,你做的不对的第一件事就是用DualHttpBinding进行双面。整个绑定是一个巨大的混乱,很容易出现这样的问题(和防火墙,哦,上帝的防火墙)。

如果您要使用类似net.tcp的东西,而不是客户端建立到服务器的单向双向连接,而不需要两个连接,并且服务器不再关心客户端是否在DHCP上。

+0

谢谢你的坦白。远离http传输彻底解决了我们的问题。接下来的问题变成了,因为我们使用自定义绑定,所以''元素不支持配置中的maxReceivedMessageSize,因此改变我们的自定义编码的MessageEncodingBindingElment构造函数修复了这个问题。 – Beta033 2011-03-24 22:07:50

+0

很高兴为你效劳。 :) – Tridus 2011-03-25 00:35:17