Pergunta

Acabei de criar um serviço WCF / cliente e tudo funciona bem quando rodando na mesma máquina. Mas não consigo descobrir como configurá-lo para rodar em máquinas diferentes. Você sabe como?

Neste momento, o URI está definido para http: // localhost: 8000 ......

Mas eu acho que eu quero algo como net.tcp: // MyServer: 8000 ... ..

Todas as idéias seria ótimo. Obrigado.

Foi útil?

Solução

Pelo que parece, você tem tanto o serviço eo cliente no mesmo executável. Embora isso possa ser feito, quando você quer que eles em máquinas separadas você precisa ter um executável / host para o serviço (ou auto hospedado, ou no IIS) e um executável para o cliente. Cada terá de ser devidamente configurado com o endereço, de ligação, e se contraem na secção de configuração apropriada para ela. Então, no servidor, você teria algo parecido com isto:

<configuration>
    <system.serviceModel>
        <services>
            <service name="YourService">
                <endpoint address="http://MyServer:8000/..."
                          binding="BasicHttpBinding"
                          contract="Your.IContract" />
            </service>
        </services>
    </system.serviceModel>
</configuration>

E no cliente você teria o seguinte:

<configuration>
    <system.serviceModel>
        <client>
            <endpoint address="http://MyServer:8000/..."
                      binding="BasicHttpBinding"
                      contract="Your.IContract"
                      name="ClientEndpoint" />
        </client>
    </system.serviceModel>
</configuration>

O principal é ter certeza de que o cliente eo servidor podem se comunicar uns com os outros sobre o porto especificado e protocolo (fazer principalmente a comunicação certeza que um firewall não está bloqueando). A outra coisa a ter em conta é mudar o seu protocolo de ligação pode afetar outros aspectos do seu serviço (de segurança é um grande problema, mas também o que você pode e não pode fazer com o serviço).

Outras dicas

Não há informação suficiente aqui para responder a sua pergunta.

Assumindo que você não está definindo endereço / informações vinculativas / contrato na ServiceHost e proxies através de código, você precisa postar a seção de seu arquivo de configuração.

Se você está fazendo isso no código, então você precisa mostrar o código que você está usando.

De que eu posso dizer, parece que você pode ter uma incompatibilidade com a ligação dos transportes. O serviço eo cliente tem que estar no mesmo transporte (HTTP, TCP, pipes nomeados, etc, etc).

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