Pregunta

He creado un servicio / cliente WCF y todo funciona bien cuando se ejecuta en la misma máquina. Pero no puede & # 8217; t averiguar cómo configurarlo para ejecutarse en diferentes máquinas. ¿Sabes cómo?

En este momento, el URI está establecido en http: // localHost: 8000 ......

Pero creo que quiero algo como net.tcp: // MyServer: 8000 & # 8230; ..

Cualquier idea sería genial. Gracias.

¿Fue útil?

Solución

Por lo que suena, tienes tanto el servicio como el cliente en el mismo ejecutable. Si bien esto se puede hacer, cuando los quiere en máquinas separadas, necesita tener un ejecutable / host para el servicio (ya sea alojado automáticamente o en IIS) y un ejecutable para el cliente. Cada uno deberá configurarse correctamente con la dirección, el enlace y el contrato en la sección de configuración adecuada para ello. Así que en el servidor tendrías algo como esto:

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

Y en el cliente tendrías esto:

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

Lo principal es asegurarse de que el cliente y el servidor puedan comunicarse entre sí a través del puerto y protocolo especificados (principalmente, asegurarse de que un firewall no esté bloqueando la comunicación). La otra cosa a tener en cuenta es que cambiar su protocolo de enlace puede afectar otros aspectos de su servicio (la seguridad es muy importante, pero también lo que puede y no puede hacer con el servicio).

Otros consejos

No hay suficiente información aquí para responder a tu pregunta.

Suponiendo que no está configurando la información de dirección / enlace / contrato en ServiceHost y los proxies a través del código, debe publicar la sección de su archivo de configuración.

Si lo estás haciendo en código, entonces debes mostrar qué código estás usando.

Por lo que puedo decir, parece que puede haber una falta de coincidencia con el enlace de transporte. El servicio y el cliente deben estar en el mismo transporte (http, tcp, canalizaciones con nombre, etc, etc.).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top