J'ai un hôte de service WCF dans IIS8 et je veux utiliser une liaison net.tcp.IIS8 Il n'y avait pas de point d'écoute à l'écoute net.tcp:
J'ai cette configuration:
Web.config:
<service behaviorConfiguration="MyBehavior"
name="DecryptService.EmailCenterDecryptTCP">
<host>
<baseAddresses>
<add baseAddress="net.tcp://XX.XX.XX.XX:808/VirtualFolder/Service.svc" />
</baseAddresses>
</host>
<endpoint address=""
binding="netTcpBinding"
bindingConfiguration="portSharingBinding"
name="MyServiceEndpoint"
contract="ServiceNamespace.IService">
</endpoint>
<endpoint address="mextcp"
binding="mexHttpBinding"
bindingConfiguration=""
name="MyServiceMexTcpBidingEndpoint"
contract="IMetadataExchange" />
</service>
Lorsque je tente de consommer le service dans la même machine que IIS8 avec la configuration suivante fonctionne très bien:
<client>
<endpoint address="net.tcp://YY.YY.YY.YY:808/VirtualFolder/Service.svc"
binding="netTcpBinding" bindingConfiguration="MyServiceEndpoint"
contract="ServiceReference1.IService" name="MyServiceEndpoint" />
</client>
YY.YY.YY.YY est l'adresse IP locale de la machine mais lorsque j'essaie de consommer le service dans une autre machine en changeant YY.YY.YY.YY vers l'adresse IP externe de la machine (ZZ.ZZ.ZZ.ZZ) IIS8 I obtenez l'erreur suivante:
There was no endpoint listening at net.tcp://ZZ.ZZ.ZZ.ZZ/VirtualFolder/Service.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
Des idées? Merci et désolé pour mon mauvais anglais
EDIT:
J'ai fait une application console en cours d'exécution d'un ServiceHost remplaçant IIS et avec cette configuration, il fonctionne sur Internet
var svh = new ServiceHost(typeof (Service));
svh.AddServiceEndpoint(typeof (ServiceNamespace.IService), new NetTcpBinding(SecurityMode.None), "net.tcp://serverLocalIp:808");
svh.Open();
Console.WriteLine("SERVER - Running...");
stopFlag.WaitOne();
Console.WriteLine("SERVER - Shutting down...");
svh.Close();
Console.WriteLine("SERVER - Shut down!");
Toute idée ce qui est erroné avec IIS exécutant le même service sur Internet? travaille localement. Merci
Mais si j'ai un espace « http, net.tcp » ne devrait pas manquer, même pour les appels locaux? –
J'ai examiné IIS et j'ai tout ok .. le problème est que si j'appelle le service de la même machine que IIS8 fonctionne (localhost) tout fonctionne bien mais quand j'appelle le même service en dehors de la machine qui exécute IIS je reçois erreur –
Cela ressemble à un pare-feu vous bloque alors. – Middas