Конечные точки WCF IPv6 - PullRequest
       11

Конечные точки WCF IPv6

1 голос
/ 23 декабря 2009

Я изучаю возможность использования Peer 2 Peer вместе с WCF в приложении Windows для терминала EPoS.

Приложение будет находиться на нескольких компьютерах в локальной сети; на компьютере будет только один экземпляр приложения.

В настоящее время я думаю, что мое приложение запускается и присоединяется к одноранговой сети, при присоединении к сетке оно периодически выдает сообщение «heartbeat», которое содержит идентификатор терминала и адрес IPv6.

Любые другие терминалы, присоединяющиеся к сетке, получают эти пульсы и поддерживают свой собственный список терминалов в сети.

Для действий в приложении потребуется доступ к определенному терминалу в сети. Поэтому приложение разрешает идентификатор терминала в 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,

Simon

Ответы [ 2 ]

0 голосов
/ 05 июля 2017

На самом деле я в данный момент использую настройку клиент / сервер (сетевой уровень) / базы данных, которую я написал как бизнес-решение, и локальный интернет моего делового партнера (Comcast) настроил его так, что IPV6 является единственным таким образом, он может получить доступ к вещам внутри своей локальной сети, а раньше - только к IPV4. Мне удалось сопоставить его с правильным машинным адресом и заставить IPV6 работать с обеих сторон, но то, что вы описываете ... это то, что я испытывал с необработанным IPV6-адресом. Я создал запись AAAA для имени домена, которое я использую, и порт переадресовал его на правильную машину на маршрутизаторе ... если вы сделаете это, как только он разрешит, он будет работать, но вы не сможете использовать шестнадцатеричный код, вам придется используйте доменное имя. Или, по крайней мере, у меня так получилось. Мне было бы интересно узнать, почему он не принимает шестнадцатеричный адрес.

0 голосов
/ 23 декабря 2009

Хорошо, мне кажется, я понимаю это сейчас.

На моей машине для разработки установлено приложение VMWare, и поэтому оно имеет два других сетевых интерфейса. Мне нужно добавить область локального сетевого интерфейса, который я хочу использовать, к IP6-адресу удаленного компьютера.

...