1

在我的办公楼中,我们在多个楼层都有笔记本电脑,它们都在运行 WCF 服务。当 WCF 服务相互通信时,超出范围设备的消息是否会通过多跳自动到达它?WCF/WLAN 设备驱动程序是否处理此问题?或者我是否必须检测设备是否不可联系/超出范围并在我自己的服务中实施跳跃?

4

3 回答 3

4

只要您有从 WCF 客户端到服务的连接 - 是的,将使用所有途径。您不必担心您的消息采用什么网络路径之类的事情 - 网络只需要在通话期间存在且稳定;-)

WCF 中没有什么可以处理这个问题,真的 - 这应该由驱动程序或操作系统在网络堆栈中处理得更低。

于 2009-11-07T12:39:50.187 回答
3

简短的回答

使用 WCF 可以执行以下一项或两项操作:

  • 依靠像 IP 这样的底层协议来处理漫游
  • 使用自定义通道代码以您想要的方式处理重试、漫游等

Microsoft 提供的 WCF 类中没有提供增强漫游的特殊机制,但如果您编写或找到执行此操作的通道实现,框架本身很容易无缝地支持这一点。

完整答案

WCF 不是在线协议。它是一个允许您使用各种协议和网络堆栈进行通信的框架。这允许您使用相同的客户端和服务器代码,无论您使用的是 HTTPS、原始 TCP、命名管道还是任何其他协议。

WCF 附带了许多频道,您可以添加自己的频道。例如,如果您想通过蓝牙或 IRDA 进行通信,只需创建一个与这些协议对话的新通道,您就可以在其上使用您的 WCF 服务。这些渠道也可以在网上找到或从供应商处购买。

今天的大多数网络都是使用 IP 协议完成的,如果您使用 WCF 在桌面计算机之间进行通信,您可能会在 IP 之上使用一些协议,例如 TCP 或 HTTP。在这种情况下,将使用 IP 的正常路由规则,因此如果两台机器可以交换 IP 数据包,您就可以使用 WCF 进行通信。

因此,如果您的 WiFi 接入点允许无缝漫游,您将能够使用 WCF 访问该功能。

如果您的 WiFi 路由没有无缝漫游,如果您想在漫游期间保持连接,则必须做一些额外的工作。具体来说,您将需要创建一个通道,该通道将通过重新解析服务器 nane 并重试请求来响应关闭的连接。当然,您必须使用 DNS 或其他协议,以便服务器可以在其 IP 地址更改时更新其注册。

WCF 足够灵活,允许您创建这样的通道并在您的应用程序代码没有意识到的情况下使用它。但是盒子里没有这样的东西:您必须构建它,或者下载或购买它。

于 2009-11-08T04:39:57.977 回答
0

它与WCF无关......

如果计算机之间有连接,在 IP 上,则消息将通过...

于 2009-11-07T12:44:36.043 回答