Comment configurer un service WCF pour les clients s'exécutant sur des ordinateurs en réseau?

StackOverflow https://stackoverflow.com/questions/413856

  •  03-07-2019
  •  | 
  •  

Question

Je viens de créer un service / client WCF et tout fonctionne correctement lorsqu'il est exécuté sur le même ordinateur. Mais vous ne pouvez pas comprendre comment le configurer pour qu’il s’exécute sur différentes machines. Savez-vous comment?

Pour le moment, l'URI est défini sur http: // localHost: 8000 ......

Mais je pense que je veux quelque chose comme net.tcp: // MyServer: 8000 & # 8230; ..

Toutes les idées seraient géniales. Merci.

Était-ce utile?

La solution

D'après ce que cela ressemble, vous avez le service et le client dans le même exécutable. Bien que cela puisse être fait, lorsque vous les voulez sur des machines distinctes, vous devez disposer d'un exécutable / hôte pour le service (hébergé de manière autonome ou dans IIS) et d'un exécutable pour le client. Chacun devra être correctement configuré avec l'adresse, la liaison et le contrat dans la section de configuration appropriée. Donc, sur le serveur, vous auriez quelque chose comme ceci:

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

Et sur le client, vous auriez ceci:

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

L'essentiel est de s'assurer que le client et le serveur peuvent communiquer l'un avec l'autre via le port et le protocole spécifiés (principalement en s'assurant qu'un pare-feu ne bloque pas la communication). L’autre élément à prendre en compte est que la modification de votre protocole de liaison peut avoir une incidence sur d’autres aspects de votre service (la sécurité en est un important, mais aussi ce que vous pouvez et ne pouvez pas faire avec le service.)

Autres conseils

Il n'y a pas assez d'informations ici pour répondre à votre question.

En supposant que vous ne définissiez pas les informations d'adresse / de liaison / de contrat dans ServiceHost et les mandataires via le code, vous devez publier la section de votre fichier de configuration.

Si vous le faites dans un code, vous devez alors indiquer le code que vous utilisez.

D'après ce que je peux dire, il semble que vous ayez un problème de correspondance avec la liaison de transport. Le service et le client doivent être sur le même transport (http, tcp, canaux nommés, etc., etc.).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top