【问题标题】:WCF IPv6 EndpointsWCF IPv6 端点
【发布时间】:2009-12-23 16:10:11
【问题描述】:

我正在研究在用于 EPoS 终端的 Windows 应用程序中将 Peer 2 Peer 与 WCF 一起使用的可能性。

该应用程序将位于本地网络中的多台 PC 上;每台 PC 上只有一个应用实例。

我目前的想法是我的应用程序启动并加入对等网格,在加入网格时,它会定期喊出包含其终端 ID 和 IPv6 地址的“心跳”消息。

任何其他加入网格的终端都会收到这些心跳,并在网络中维护自己的终端列表。

应用内的操作需要访问网络上的特定终端。因此,应用程序将终端 id 解析为 ip 地址,并可以生成一个 Uri 以通过 net.tcp 访问服务

我已经使用链接本地地址发布了服务端点

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

设置端点的字符串例如:

"net.tcp://[fe80::250:56ff:fec0:8%4]:5555/GSS-POS/PrintingService"

但是,当我尝试访问此服务时,我收到一条错误消息,提示无法访问主机。

TCP 错误代码 10065:尝试对无法访问的主机 fe80::290:5ff:fe01:6303%4:5555 进行套接字操作

我意识到这取决于我对 IPv6 寻址的了解有限。我应该为我的端点使用什么地址(我正在使用链接本地 IPv6 地址)?还是我的整体概念有缺陷?

TIA,

西蒙

【问题讨论】:

    标签: .net wcf ipv6 p2p


    【解决方案1】:

    好的,我想我现在明白了。

    我的开发机器安装了 VMWare,因此还有另外两个网络接口。我需要将要使用的本地网络接口的范围附加到远程机器的 IP6 地址。

    【讨论】:

      【解决方案2】:

      实际上,我目前正在运行一个客户端/服务器(网络层)/数据库设置,我将其作为业务解决方案编写,而我的业务合作伙伴的现场互联网 (Comcast) 让他以 IPV6 是唯一的方式进行设置这样他就可以访问他的局域网内的东西,而在此之前,只能访问外部的 IPV4。我设法将它映射到正确的机器地址并让 IPV6 在双方都工作,但你所描述的......是我在使用原始 IPV6 地址时遇到的情况。我为我使用的域名创建了一个 AAAA 记录,并将其转发到路由器上的正确机器......如果你这样做,一旦它解析,它就会工作,但你不能使用十六进制,你必须使用域名。或者至少这对我来说是这样的。我很想知道为什么它不会采用十六进制地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 2013-05-29
        相关资源
        最近更新 更多