2011-01-26 5 views
1

Je teste les pas de fonctionnalités de configuration de WCF 4.WCF 4 et NetTcpBinding

J'ai construit un service simple et déployé à IIS. Le service est déployé en tant que fichier svc

La configuration client est vide:

<configuration> 
    <system.serviceModel> 
     <bindings /> 
     <client /> 
    </system.serviceModel> 
</configuration> 

La configuration sur le serveur Web est:

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
</system.web> 
<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

Ce code fonctionne très bien:

BasicHttpBinding myBinding = new BasicHttpBinding(); 
EndpointAddress myEndpoint = new EndpointAddress("http://localhost/Service1.svc"); 
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint); 
IService1 wcfClient1 = myChannelFactory.CreateChannel(); 
int z = wcfClient1.Multiply(composite); 

Ce code ne comprend pas:

NetTcpBinding myBinding = new NetTcpBinding(); 
EndpointAddress myEndpoint = new EndpointAddress("net.tcp://localhost:808/Service1.svc"); 
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint); 
IService1 wcfClient1 = myChannelFactory.CreateChannel(); 
int z = wcfClient1.Multiply(composite); 

L'erreur que je reçois est:

Impossible de se connecter à net.tcp: //localhost/Service1.svc. La tentative de connexion a duré pendant un temps durée de 00: 00: 02.1041204. Erreur TCP code 10061: Aucune connexion n'a pu être établie à car la machine cible l'a refusée activement 127.0.0.1:808.

La liaison net.tcp est définie sur le site Web par défaut. J'ai le sentiment qu'il y a quelque chose de simple qui me manque. Quelqu'un a des idées?

Répondre

4

a trouvé le problème. Bien que net.tcp ressemblait il a été installé pour le site Web par défaut, il avait besoin d'être activé à l'aide de cette commande:

appcmd.exe set app "Default Web Site/" /enabledProtocols:http,net.tcp 
+0

Vous pouvez également faire un clic droit sur IIS> Site Web par défaut et cliquer sur Paramètres avancés. Vous verrez la dernière option "Protocoles activés" et vous pouvez y ajouter net.tcp. – Donny

6

J'ai l'impression que votre Service de partage de port Net.Tcp n'est pas activé.

+0

Merci, il a été désactivé, j'activé et a commencé. J'ai également fait la même chose pour Net Tcp Listener adaptateur, mais je reçois toujours la même erreur –

+0

Est-ce que ce service est un facteur lors de l'hébergement dans IIS? Je ne le pensais pas mais je pouvais me tromper. – Brook

+0

@Shiraz, @Brook - Malheureusement, je peux être d'une aide limitée dans ce domaine car je n'ai jamais hébergé un service WCF TCP dans IIS. Les détails de votre problème semblent familiers aux problèmes que j'ai eu l'hébergement d'un dans un service Windows régulier. – ChaosPandion