从WP7发现本地运行的WCF

时间:2012-01-31 22:02:01

标签: wcf silverlight windows-phone-7 service-discovery

我在Windows服务中运行了一个WCF服务,它位于我的本地网络上。我想要的是能够在我的WP7上(在同一网络上)从我的Silverlight应用程序中发现WCF。

我知道WCF中有一个Discovery功能,但它需要UDP,WP7不支持。那么有没有其他方法来发现本地WCF?

在启动WCF之前,我也不知道WCF服务的IP地址。

3 个答案:

答案 0 :(得分:2)

我提出的解决方案是在WP7上使用套接字,它们支持多播。 所以设置就是这样:

  • 桌面服务 - 托管WCF和小型Socket应用程序的Windows服务 它侦听特定端口。
  • WP7客户端 - 在连接到WCF之前 将使用套接字发送广播以找出其IP地址 当响应连接到WCF时,运行WCF的机器。

答案 1 :(得分:1)

要在WP7项目中引用WCF服务,WCF服务必须是BasicEndpoint

答案 2 :(得分:1)

您可以提供公开一种目录服务的基本端点。它不必实现UDDI,但它可以是一个自定义协议,以满足您的需求和返回Web服务的地址。

这样您只需要知道一个地址。当然,只有当您无法连接时,才能缓存返回的地址并查询目录服务。