Pergunta

Estou investigando a possibilidade de usar o par 2, juntamente com o WCF em um aplicativo Windows para um terminal EPOS.

O aplicativo ficará em vários PCs em uma rede local; Só haverá uma instância do aplicativo por PC.

Meu pensamento atual é que meu aplicativo inicia e une a malha de pares, ao ingressar na malha, ele grita periodicamente uma mensagem de 'batimentos cardíacos' que contém seu ID do terminal e endereço IPv6.

Quaisquer outros terminais que ingressam na malha recebem esses batimentos cardíacos e mantenham sua própria lista de terminais na rede.

As ações dentro do aplicativo exigirão o acesso a um terminal específico na rede. O aplicativo resolve, portanto, o ID do terminal em um endereço IP e pode gerar um URI para acessar o serviço via net.tcp

Eu publiquei o endpoint do serviço usando o endereço local do link

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

A string para configurar o endpoint seria, por exemplo:

"net.tcp: // [Fe80 :: 250: 56ff: FEC0: 8%4]: 5555/GSS-pos/PrintingService"

No entanto, quando tento acessar este serviço, recebo um erro dizendo que o host é inacessível.

Código de erro do TCP 10065: Uma operação de soquete foi tentada para um host inacessível FE80 :: 290: 5ff: FE01: 6303%4: 5555

Sei que isso se deve ao meu conhecimento limitado do endereçamento do IPv6. Qual endereço devo usar para o meu endpoint (estou usando o endereço IPv6 local do link)? Ou meu conceito geral é falha?

Tia,

Simon

Foi útil?

Solução

Ok, acho que entendo isso agora.

Minha máquina de desenvolvimento possui o VMware instalado e, portanto, possui outras duas interfaces de rede. Preciso anexar o escopo da interface de rede local que quero usar no endereço IP6 da máquina remota.

Outras dicas

Atualmente, estou executando uma configuração de cliente/servidor (camada de rede)/banco de dados que escrevi como uma solução de negócios e a Internet no local do meu parceiro de negócios o faz configurar de tal maneira que o IPv6 seja a única maneira que ele pode Acesse as coisas dentro de sua LAN e, antes, apenas IPv4 lá fora. Consegui mapeá -lo para o endereço correto da máquina e fiz o IPv6 funcionando nos dois lados, mas o que você está descrevendo ... é o que eu estava experimentando com um endereço IPv6 bruto. Eu criei um registro AAAA para o nome de domínio que eu uso e a porta o encaminhei para a máquina correta no roteador ... se você fizer isso, uma vez que ela resolver, funcionará, mas você não pode usar o hexadecimal, você precisa Use o nome de domínio. Ou pelo menos foi assim que funcionou para mim. Eu ficaria curioso para saber por que não aceitará o endereço hexadecimal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top