J'ai un serveur WCF que je peux exécuter en tant que service ou en tant qu'application de formulaires Windows. Lorsque je l'exécute en tant qu'application Windows Forms, je peux me connecter via mon application client. Cependant quand je l'exécute en tant que service en utilisant le même code, je ne peux pas me connecter à lui. J'ai confirmé que le service fonctionne et fait son travail. Voici le fichier de configuration du serveur.WCF fonctionne en tant qu'application, mais pas en tant que service
<system.serviceModel>
<services>
<service name="Cns.TrafficCopService.ManagementService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/TrafficCop/ManagementService" />
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" contract="Cns.TrafficCopService.IManagementService" />
</service>
</services>
</system.serviceModel>
et son code d'hébergement, appelé 100 millisecondes après OnStart est appelé:
if (this.serviceHost != null)
{
this.serviceHost.Close();
}
this.serviceHost = new ServiceHost(typeof(ManagementService));
this.serviceHost.Open();
et le fichier de configuration du client:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IManagementService" />
</wsHttpBinding>
</bindings>
<client>
<endpoint
address="http://localhost:8000/TrafficCop/ManagementService"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IManagementService"
contract="IManagementService"
name="WSHttpBinding_IManagementService">
</endpoint>
</client>
</system.serviceModel>
Où exécutez-vous le code d'hébergement? – Grzenio
Le client et le serveur sont-ils sur le même ordinateur? Je me demande si "localhost" ne fait pas partie du problème ... un client distant ne demandera pas "localhost" ... –
Ils sont sur la même machine. Encore une fois cela fonctionne comme une application, mais pas comme un service. –