J'ai un service WCF dulpex, hébergé dans un service Windows. J'ai installé le service Windows à partir de la ligne de commande via InstallUtil.exe, démarrez le service à partir du panneau de gestion de service. Il est maintenant temps de tester WCF. J'ai donc ajouté un nouveau projet de console en tant que client, la prochaine étape consiste à ajouter une référence Web au projet. Cependant, j'ai eu une erreur:Héberger un service WCF dans un service Windows mais le point de terminaison n'a pas été trouvé
There was an error downloading `http://localhost:8733/KeyValueService/_vti_bin/ListData.svc/$metadata`.
Unable to connect to the remote server
No connection could be made because the target machine actively refused it 127.0.0.1:8733
Metadata contains a reference that cannot be resolved: `http://localhost:8733/KeyValueService`.
Le app.config dans le projet de service a:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="VoiceApp.KeyValueService">
<endpoint address="http://localhost:8733/KeyValueService/" binding="wsDualHttpBinding" contract="VoiceApp.IService1" />
<endpoint address="http://localhost:8733/KeyValueService/mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
</basicHttpBinding>
</bindings>
<client>
</client>
J'ai suivi la configuration par Metatata Exchange Endpoint Blog, mais ce ne serait pas utile.
également à l'intérieur du service Windows, nous avons:
protected override void OnStart(string[] args)
{
if (serviceHost != null)
{
serviceHost.Close();
}
serviceHost = new ServiceHost(typeof(KeyValueService));
serviceHost.Open();
MyApplication.Start(); // a long running code...
}
Mise à jour:
Mon étape a été la création d'un projet de service Windows, puis a ajouté un service WCF.
Le lien de service est-il accessible depuis le navigateur? Si non, essayez de désactiver le pare-feu – Uriil
Erreur: Cette page ne peut pas être affichée à partir de IE. –
Le point de terminaison que vous avez ressemble à IIS Express. Je n'ai pas créé de service duplex auparavant, mais j'ai créé un service WCF dans un hôte de service Windows. Je m'attendrais à ce que le point de terminaison soit tcp ou nommé pipes. Pouvez-vous confirmer que le service Windows ne plante pas lorsqu'il démarre? – Adam47