J'ai un service WCF exécuté sur le IIS avec un ServiceHostFactory. Il fonctionne très bien avec le WSHttpBinding mais à cause de la vitesse et de tout sur le même réseau (pas de pare-feu), je veux accélérer les choses un peu en utilisant le NetTcpBinding à la place.
Lorsque j'essaie de faire cela, j'obtiens cette erreur:
Impossible de se connecter à net.tcp: //zzz.xxx.yyy/MyService.svc. La tentative de connexion a duré 00: 00: 01.0464395. TCP code d'erreur 10061: Aucune connexion n'a pu être établie car la machine cible l'a activement refusée x.x.x.x: 808.
J'utilise SecurityMode.None
juste pour m'assurer que ça ne me gâche pas aussi j'ai essayé l'un ou l'autre de ces deux essais différents:
binding.Security.Message.ClientCredentialType = MessageCredentialType.None;
binding.Security.Message.ClientCredentialType = TcpClientCredentialType.Windows;,
Je dois également souligner que je tire pas mal de données de l'un des appels de service, donc je les ai également mis (à la fois sur les tentatives http et tcp - définissant maxMessageSize sur 1000000)
binding.MaxReceivedMessageSize = maxMessageSize;
binding.ReaderQuotas.MaxArrayLength = maxMessageSize;
Il devrait être assez facile de le faire fonctionner, alors qu'est-ce qui me manque?
MISE À JOUR: J'ai ajouté le TCP port 808 à l'identité du site Web et j'ai réessayé. Maintenant, je reçois cette erreur:
Vous avez essayé de créer un canal vers un service qui ne prend pas en charge le .Net Framing. Il est possible que vous rencontriez un point de terminaison HTTP.
Découvrez cet article sur l'activation des liaisons non HTTP dans IIS 7.0. Par défaut, vous devez activer explicitement net.tcp dans IIS 7.0.
J'espère que cela t'aides.
METTRE À JOUR:
Vu votre commentaire - malheureusement, net.tcp n'est pas pris en charge dans IIS 6.0. Consultez ce lien qui détaille les liaisons WCF prises en charge pour divers hôtes (y compris l'auto-hébergement, WAS et IIS). Il semble que seules les liaisons HTTP fonctionnent dans IIS 6.0.
Si vous utilisez Vista, assurez-vous que les services WAS et Net.Tcp Listener Adapter sont en cours d'exécution.
Pour tous ceux qui tombent sur cela, mon guide pour résoudre les problèmes de WCF net.tcp comme celui-ci:
c:\windows\system32\inetsrv
, entrer appcmd.exe set app "NameOfWebsite/" /enabledProtocols:http,net.tcp
Terminé.
Une fois que j'ai démarré le service d'adaptateur d'écoute Net.Tcp, le service fonctionne bien pour moi.
Serait-ce quelque chose d'aussi simple que vos règles de pare-feu sur l'hôte de service interdisant le port 808?
J'avais également ce problème sur Windows Server 2008 R2
Assurez-vous simplement que le service de partage de port Net.Tcp est également démarré, car il s'agit d'une dépendance de l'adaptateur d'écoute Net.Tcp.
vérifier si IIS a les deux protocoles pointant vers le même numéro de port, je viens de trouver si c'est le cas, cela ne fonctionnera pas.