2009-12-23 154 views
1

我正在研究在EPOS終端的Windows應用程序中使用Peer 2 Peer和WCF的可能性。WCF IPv6端點

該應用程序將位於本地網絡中的一些PC上;每臺PC只會有一個應用程序實例。

我目前的想法是,我的應用程序啓動並加入對等網格,加入網格時,它週期性地發出包含其終端ID和IPv6地址的「心跳」消息。

加入網格的任何其他終端都會接收這些心跳並在網絡中維護自己的終端列表。

應用程序內的操作將需要訪問網絡上的特定終端。因此,應用程序解決了終端ID爲IP地址,並且可以生成一個URI使用鏈路本地地址

printingHostRemote = New ServiceHost(printSpooler, New Uri("net.tcp://" & myNetworkAddress & "/" & ServiceNames.PrintingService)) 
printingHostRemote.AddServiceEndpoint(GetType(IPrintingService), tcpPipeBinding, "net.tcp://" & myNetworkAddress & "/" & ServiceNames.PrintingService) 

字符串設置通過的net.tcp訪問服務

我已經發布了服務端點端點將是,例如:

「的net.tcp:// [FE80 :: 250:56ff:FEC0:8%4]:5555/GSS-POS/PrintingService」

然而,當我嘗試訪問此服務我得到一個錯誤,說主機無法訪問。

TCP錯誤代碼10065:套接字操作嘗試一個無法連接的主機FE80 :: 290:5FF:FE01:6303%4:5555

我意識到這是記在我有限的IPv6尋址知識。我應該爲我的端點使用什麼地址(我正在使用鏈接本地IPv6地址)?或者我的整體概念有缺陷?

TIA,

西蒙

回答

0

好吧,我想我現在明白這一點。

我的開發機器安裝了VMWare,因此有兩個其他網絡接口。我需要將我想要使用的本地網絡接口的範圍附加到遠程機器的IP6地址。

0

我實際上正在運行一個客戶端/服務器(網絡層)/數據庫設置,我寫爲一個商業解決方案,我的業務合作伙伴的現場互聯網(康卡斯特)讓他成立了這樣一種方式,IPV6是隻有這樣他才能訪問局域網內的東西,而之前只有IPV4以外的東西。我設法將它映射到正確的機器地址,並且獲得了IPV6雙方的工作,但是您所描述的......是我在原始IPV6地址中遇到的情況。我爲我使用的域名創建了一個AAAA記錄,並將其轉發到路由器上的正確機器上...如果你這樣做了,一旦它解決了,它就可以工作,但是你不能使用十六進制,你必須使用域名。或者至少這是它爲我工作的方式。我很想知道爲什麼它不會佔用十六進制地址。