Je passe un moment difficile avec Netcpbinding.
Quand je courais mon wcfservice, je reçois ceci: p>
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <compilation debug="true" /> </system.web> <system.serviceModel> <bindings> <netTcpBinding> <binding name="tcpBinding" transferMode="Streamed" portSharingEnabled="false"> <reliableSession enabled="true" /> <security mode="None"> <transport clientCredentialType="None" protectionLevel="None" /> <message clientCredentialType="None" /> </security> </binding> </netTcpBinding> </bindings> <services> <service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior" name="WcfServiceLibrary1.Service1"> <endpoint address="" binding="wsHttpBinding" contract="WcfServiceLibrary1.IService1"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <endpoint address="Service" binding="netTcpBinding" bindingConfiguration="tcpBinding" name="testTcp" contract="WcfServiceLibrary1.IService1" /> <host> <baseAddresses> <add baseAddress="http://localhost:8731/Design_Time_Addresses/WcfServiceLibrary1/Service1/" /> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="WcfServiceLibrary1.Service1Behavior"> <serviceMetadata httpGetEnabled="True"/> <serviceDebug includeExceptionDetailInFaults="False" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration>
5 Réponses :
Dans cette section
<host> <baseAddresses> <add baseAddress="http://localhost:8732/" /> <add baseAddress="net.tcp://localhost"/> </baseAddresses> </host>
Ajout que cela ne fonctionne pas. dit que le port est utilisé comme une erreur. Pourriez-vous compléter cette ligne pour moi s'il vous plaît? Merci
System.ServiceModel.AddressAlreadyUneSeException: The TransportManager n'a pas réussi à écouter l'URI fourni à l'aide du service NetTCPORTSHARD: Le service n'a pas pu écouter.
Assurez-vous d'utiliser un autre port (par exemple si HTTP est sur 8731, puis utilisez E.G. 8732: NET.TCP: // localhost: 8732 / YADDA / BLAH /)
Je ne peux pas utiliser plusieurs ports car je prévois de l'utiliser sur une application ASP.NET déployée. Je suis en train d'essayer net.tcp partage ... mais cela échoue aussi. J'ai demandé cette erreur sur une question séparée ici. Stackoverflow.com/Questtions/1297865/wcf-multiple-bindings
Je vois PortSharingenabled = False dans votre app.config. Cela dit, je ne sais pas si vous pouvez partager HTTP et TCP comme ça (ne vous rappelez pas).
S'il vous plaît voir ma réponse sur votre autre thread pour une réponse au numéro de partage de ports: Stackoverflow.com/questions/1297865/wcf -Multiple-Bindings
Je suis sûr que vous avez maintenant corrigé le problème, mais ce n'est vraiment rien à voir avec les bassesAdresses, ce que toutes les cartes Bullentin vous mènent. J'ai trouvé la réponse à http: //social.msdn.microsoft.com/forums/en-us/wcf/thread/c9f8d99d-89ee-4573-8528-a21b047bad11 . En supposant que vous utilisez IIS 7.x: clic droit sur le répertoire virtuel / application dans IIS, sélectionnez Gérer les applications -> Paramètres avancés. Dans la section "Protocoles activées", add Net.TCP, E.G.: Http, net.tcp. Cela est nécessaire même si vous avez déjà ajouté ce protocole au niveau du site. P>
Je vois que vous avez également un mode de sécurité défini sur Aucun dans vos liaisons, ce que j'ai commencé à utiliser au début, ce que je fais, j'ai besoin de connaître l'appelant authentifié. Je reçois normalement cela de fonctionnementContext.Current.ServicesecurityContext.Primydent ity.name ( moinsprivilge.com/... " a>). Donc, j'ai changé les liaisons sur i> le client et le serveur vers Windows, conformément à msdn.microsoft.com/en-us/library/ms733089.aspx (sécurité de transport avec authentification Windows).
Comment faire cela dans IIS6? Des idées?
Merci ... J'ai regardé ce fichier de configuration pendant environ 2 heures maintenant et je ne pouvais pas comprendre ce qui se passait ...
Oui oui oui, mille fois oui; J'ai oublié de faire cela et j'ai eu un mauvais moment à essayer de comprendre ce que je devais changer, car j'étais certain que je n'avais pas besoin de fournir une adresse de base.
Configurez la liaison NET.TCP dans votre site IIS et définissez le protocole activé comme "http, net.tcp à l'aide de paramètres avancés". Il devrait fonctionner p>
Vous pouvez partager des ports, ce n'est pas trop difficile. p>
Assurez-vous que lors de la sélection des protocoles activés dans IIS (clic droit sur le site -> Gérer le site Web -> Paramètres avancés) Vous n'utilisez pas d'espaces. Si vous avez "http, net.tcp" au lieu de "http, net.tcp", il ne fonctionnera pas et vous donnera plutôt cette erreur exacte. P>
Plus d'informations ici: http://www.weeksofprogramming.com/post/could-not-find-a-base-address-check-for-spaces-in-iis7.aspx P>
Pourriez-vous publier votre configuration WCF à partir de l'application / web.config?
Il ne s'agit pas de visible même si je le pose
Après l'avoir ajouté, appuyez sur la touche Code (pour indiquer chaque ligne 4 espaces et ne pas interpréter le XML)
J'ai eu ... merci ... merci ... n'a pas réalisé ce fait s'appliquait à XML :)