2012-01-31 37 views
0

我有一個WCF服務運行在Windows服務中,它位於我的本地網絡上。我想要的是能夠從我的WP7上的Silverlight應用程序(在同一網絡上)發現WCF。從WP7發現本地運行的WCF

我知道WCF中有一個發現功能,但它需要UDP,這在WP7上是不支持的。那麼還有其他方法可以發現本地WCF嗎?

我也不知道在啓動WCF之前WCF服務的IP地址。

回答

2

我想出的解決方案是使用套接字作爲WP7,他們支持多播。 所以設立想這一點:

  • 桌面服務 - Windows服務託管WCF和小插座應用 監聽特定端口上。
  • WP7客戶端 - 在連接到WCF 之前,將使用套接字發送廣播以找出運行WCF的機器的IP地址 ,該機器獲得響應時連接到WCF。
1

對於一個WCF服務,以在WP7項目中引用的WCF服務MUST是BasicEndpoint

+0

是的,我意識到這一點,這就是爲什麼我尋找其他方式來發現WCF。 – Vitalij 2012-01-31 22:15:14

+0

沒有其他辦法。基本的WCF終端,如果這不起作用,你需要實現推送通知 – MyKuLLSKI 2012-01-31 22:16:15

1

你可以提供一個公開的一種目錄服務的一個基本的端點。它不必實現UDDI,但它可以是一個自定義協議,以滿足您的需求並返回Web服務的地址。

這樣你只需要知道一個地址。當然,只有當您無法連接時,您纔可以緩存返回的地址並查詢目錄服務。

+0

我想到了這一點,但不幸的是,沒有可能安裝這種服務。 – Vitalij 2012-02-01 14:25:46

+1

該服務不一定是WCF服務。它可以位於一個知名的地方(文件共享,FTP) – 2012-02-01 14:32:38

+0

這是一個很好的觀點。但是,網絡將是一個家庭網絡,因此用戶將安裝軟件的用戶,在此之前我不知道他們的本地IP地址是什麼。 – Vitalij 2012-02-01 14:42:58