Service WCF Bibliothèque avec NetTcpBinding
Je vais avoir un moment difficile avec NetTcpBinding.
Quand je lance mon WCFservice,j'obtiens ceci:
System.InvalidOperationException: Could not find a base address that matches scheme net.tcp for the endpoint with binding NetTcpBinding. Registered base address schemes are [http].
at System.ServiceModel.ServiceHostBase.MakeAbsoluteUri(Uri relativeOrAbsoluteUri, Binding binding, UriSchemeKeyedCollection baseAddresses)
at System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase host, ServiceDescription description, ServiceElement serviceElement, Action`1 addBaseAddress)
at System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader, ServiceDescription description, ServiceElement serviceSection)
at System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader, ServiceDescription description, String configurationName)
at System.ServiceModel.ServiceHostBase.ApplyConfiguration()
at System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses)
at System.ServiceModel.ServiceHost.InitializeDescription(Type serviceType, UriSchemeKeyedCollection baseAddresses)
at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)
at Microsoft.Tools.SvcHost.ServiceHostHelper.CreateServiceHost(Type type, ServiceKind kind)
at Microsoft.Tools.SvcHost.ServiceHostHelper.OpenService(ServiceInfo info)
Je reçois ce lorsque je lance l'application par défaut à l'aide de WCFSvcHost.
Il n'y a pas de code supplémentaire.Juste le code par défaut de tout nouveau service wcf.
Tout ce que je voulais faire était de changer la liaison tcp.
Comment puis-je résoudre ce problème?
Edit: Voici mon WCF App.config
<?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>
Pourriez-vous poster votre configuration WCF à partir de l'app/web.config?
Il n'est pas visible, même si je l'ai poster
après l'ajout, appuyez sur le bouton de code (indentation de chaque ligne de 4 places et de ne pas interpréter le xml)
Je fixe le format.
eu....merci...n'a pas compte de ce fait appliqué pour XML 🙂
Il n'est pas visible, même si je l'ai poster
après l'ajout, appuyez sur le bouton de code (indentation de chaque ligne de 4 places et de ne pas interpréter le xml)
Je fixe le format.
eu....merci...n'a pas compte de ce fait appliqué pour XML 🙂
OriginalL'auteur Josh | 2009-08-19
Vous devez vous connecter pour publier un commentaire.
Dans cette section
ajouter un filet.tcp://adresse de base.
Système.ServiceModel.AddressAlreadyInUseException: Le TransportManager pas réussi à écouter sur les URI à l'aide de la NetTcpPortSharing service: le service n'a pas pu l'écouter.
Assurez-vous d'utiliser un port différent (par exemple, si http est sur 8731, puis utiliser, par exemple, 8732: net.tcp://localhost:8732/Yadda/Bla/ )
Je ne peux pas utiliser plusieurs ports car je prévois de l'utiliser sur un déployés asp.net app. Je suis en train net.tcp partage ...mais il échoue également.J'ai demandé que l'erreur sur une autre question ici.. stackoverflow.com/questions/1297865/wcf-multiple-bindings
Je vois portSharingEnabled=false dans votre application.config. Cela dit, désinvolte, je ne sais pas si vous pouvez partager http et tcp comme ça (ne me souviens pas).
OriginalL'auteur Brian
Je suis sûr que maintenant vous avez résolu le problème, mais c'est vraiment rien à voir avec baseAddresses qui est ce que tous les bullentin conseils vous mener à. 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: cliquez-droit sur le répertoire virtuel/application dans IIS, sélectionnez Gérer les applications -> paramètres Avancés. Dans les "Protocoles Activés à la section" ajouter net.tcp, par exemple: http,net.tcp. Cela est nécessaire même si vous avez ajouté ce protocole déjà au niveau du site.
comment faire cela dans IIS6? Des idées?
Merci... j'ai été regarder ce fichier de config pour environ 2 heures maintenant et je ne pouvais pas comprendre ce qui se passait...
OUI OUI OUI, mille fois OUI, j'ai oublié de le faire et qu'il avait un mauvais moment à essayer de comprendre ce que j'avais à changer, car j'étais certaine que je n'ai pas besoin de fournir une adresse de base.
OriginalL'auteur Helder
Vous pouvez partager des ports, il n'est pas trop dur.
Assurez-vous lors de la sélection de protocoles activés dans IIS (clic droit sur site -> Gérer le Site Web -> Paramètres Avancés) que vous N'UTILISEZ PAS d'ESPACES. Si vous avez "http net.tcp" au lieu de "http", net.tcp" ça ne marchera pas, et au lieu de vous donner cette erreur exacte.
Plus d'informations ici: http://www.weeksofprogramming.com/post/Could-not-find-a-base-address-Check-for-spaces-in-IIS7.aspx
OriginalL'auteur Kellen
Configurer net.tcp obligatoire dans votre site IIS et définir activé protocole comme http,net.tcp à l'aide des paramètres avancés".Il devrait fonctionner
OriginalL'auteur Ranjith
OriginalL'auteur Sean M