J'hôte un service WCF dans IIS7 sur Windows Server 08, SP2. Le service est hébergé comme son propre site Web et est exposé via un point final Net.TCP. Le service fonctionne parfaitement jusqu'à ce qu'une commande redémarrage / iisreSet soit émise. P>
Après le redémarrage ou IISRESET, lorsque je fais un appel de service, je reçois l'erreur suivante: 'System.ServiceModel.endPointNotFoundException: le message n'a pas pu être envoyé car le service à l'adresse du point final "net.tcp: // [site web] / [nom_servateur] .SVC" est indisponible pour le protocole de l'adresse. " p>
Le journal des événements du serveur affiche l'erreur suivante: «Une erreur s'est produite lors de la tentative de lecture et d'instancier le processus de fonctionnement configuré. Exception: système.argumentException Message: ID de protocole inconnu 'net.tcp'. StackTrace: à System.Web.Hosting.Processhost.startProcessProtocollistenerchannel (String Protocolide, ILISTENERCHANNELCALLBACKBACKBACKBACK) ' P>
Détails de la configuration IIS:
- Serveur 08 et 08 R2
- Liaisons: http, net.tcp (808: *)
- EnabledProtols: http, net.tcp.
- L'identité du site AppPool est définie sur un utilisateur spécifique. P>
exemple de code disponible ici: http://drop.io/wcftcpsampleservice P>
merci p>
4 Réponses :
Avez-vous vraiment besoin de faire un iisreset complet code>? Je crois que la méthode "moderne" recommandée pour avoir besoin d'une application Web-hébergée entièrement redémarrer est recycler le pool d'applications comme suit:
iisapp / a
AppCMD Recycler AppPool /Apppool.name:WeApp_pool_Name> code> (Windows 2008). P>
Malheureusement, ce service va être hébergé sur une machine que beaucoup de gens auront accès à et je ne peux pas les empêcher de faire de l'IISRESET. Le problème se produit également lorsque la machine est redémarrée.
Pouvez-vous utiliser différents ports pour net.TCP et protocoles HTTP? P>
sur mon PC Tout fonctionne comme il se doit, et j'ai essayé à la fois le redémarrage et l'IISRESET. J'ai téléchargé au même endroit votre projet, y compris des fichiers binaires (Express Visual WEB Express 2010) et une capture d'écran des paramètres IIS. Le pool d'applications est défini sur .NET 4.0 intégré. P>
IIS7 http://www.freeImageHosting.net/uploads/1A727D66CE.pngled/a > p>
J'ai eu ce problème à l'aide des ports 80 et 8008 pour HTTP et 808, 8009, 8089, 9200 pour TCP.
@Kevin Pouvez-vous télécharger quelque part un exemple de service WCF pour jouer avec?
J'ai ajouté un lien vers un emplacement D / L dans la question initiale.
Quelles versions de .net avez-vous (ou avez-vous eu) installées? P>
J'ai eu un problème très similaire lorsque vous allez de .NET 4 RC à RTM, car les services TCP utilisaient des DLL à partir de l'installation RC (qui n'existait plus) que les services s'arrêtent. P>
.NET Versions 2.0, 3.0, 3.5. Les machines Server 08 et 08 R2 étaient toutes les deux nouvelles installations (une machine virtuelle et une machine physique).
résolu. Le problème est la sensibilité à la casse. Dans les AdvancedSettings de l'application Web, le champ EnabledProtocols doit être minuscule, c'est-à-dire «net.tcp» (je viens d'apprendre cela du support MS). P>
J'ai supposé (bêtement) que "net.tcp" devrait être majuscule en raison de la description du champ OffreProtocols ("... Ajoutez ces valeurs, telles que Net.TCP ..."). P>
Le problème étrange et inconnu est la raison pour laquelle il fonctionnerait avec 'net.tcp' la première fois, mais c'est un autre problème. P>
Merci pour tout ce que vous aidez à tout le monde. P>
Existe-t-il un lien disponible auprès de MS SUPPORT concernant la sensibilité des cas?
@Alexandrul La personne d'assistance MS n'a eu qu'un lien interne décrivant la sensibilité des cas.
Nous avons ce numéro exécutant Windows Server 2012. Changer le cas de Net.TCP n'a pas fait de différence. Quelqu'un d'autre?
Solution de contournement hacky (imperceptable): je peux le faire fonctionner à nouveau si (1) i Supprimer net.tCP de la mesure du siteProtocols (2) IISRESET (3) Ajouter NET.TCP Retour à la mesure desprotocols du site. Le site continue de travailler jusqu'à ce que IISRESET soit remis à nouveau. IIS fait quelque chose quand j'ajoute net.tcp aux exemplaires compatibles qui ne se produisent pas lorsque IIS commence lorsque Net.TCP a déjà été ajouté.
Quand cela se produit, quel est l'état du service auditeur Net.TCP? Quel est le type de démarrage du service auditeur Net.TCP sur? Y a-t-il quelque chose de dire dans le système ou les journaux d'événements d'application?
L'adaptateur d'écoute Net.TCP est démarré (Type de démarrage: Auto). L'erreur dans le journal des événements est 'une erreur s'est produite lors de la tentative de lecture et d'instancier le processus de fonctionnement configuré. Exception: System.argumentException Message: ID de protocole inconnu 'net.tcp'. StackTrace: à System.Web.Hosting.Processhost.StartProcessProtocollistNerc Hannel (String Protocolide, ILISTENERCHANNELCALLBACK LISTERNAINLALCALLBACK) '
Oui, je rencontre le même problème. Mon travail autour est de supprimer la liaison Net.TCP de la liste de liaison du site Web et de l'ajouter à nouveau. Alors ça marche. Cela craint!