J'ai cherché le Web pour la résolution de cette erreur, mais tout ce que j'ai trouvé suggère ce que j'ai est correct.
Peut-être que quelqu'un pouvait regarder une erreur évidente que je ne peux pas voir. P> J'ai un service Windows, hébergeant deux contrats: p>
Le service administrateur hérite du service standard car je souhaite que les deux contrats de mettre en œuvre les méthodes de base. P>
Le problème est que je peux héberger les services bien, jusqu'à ce que j'essaie d'ajouter un Mex . P>
Puis je reçois l'exception suivante: P>
Le nom du contrat 'iMetaDataExchange' est introuvable dans la liste des contrats mis en œuvre par le service 'ConfigurationWCFService'. P> blockQuote>
Et ceci est ma configuration, tout est configuré par config, rien effectué via le code. P>
<system.serviceModel> <bindings> <netTcpBinding> <binding name="tcpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" /> <security mode="None" /> </binding> </netTcpBinding> </bindings> <services> <service behaviorConfiguration="serviceBehavior" name="BrightsideGroup.Repa.Configuration.ConfigurationWCFService"> <endpoint address="ConfigurationService" binding="netTcpBinding" bindingConfiguration="tcpBinding" name="tcpConfiguration" contract="BrightsideGroup.Repa.Configuration.IConfigurationWCFService" /> <endpoint binding="mexHttpBinding" address="mex" name="mex" contract="IMetaDataExchange" /> <host> <baseAddresses> <add baseAddress="net.tcp://GD01316:9123/Repa" /> <add baseAddress="http://GD01316:8123/Repa" /> </baseAddresses> </host> </service> <service behaviorConfiguration="serviceBehavior" name="BrightsideGroup.Repa.Configuration.ConfigurationWCFAdminService"> <endpoint address="ConfigurationAdminService" binding="netTcpBinding" bindingConfiguration="tcpBinding" name="tcpConfigurationAdmin" contract="BrightsideGroup.Repa.Configuration.IConfigurationAdminWCFService" /> <endpoint binding="mexHttpBinding" address="mex" name="mex" contract="IMetaDataExchange" /> <host> <baseAddresses> <add baseAddress="net.tcp://GD01316:9124/Repa" /> <add baseAddress="http://GD01316:8124/Repa" /> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="serviceBehavior"> <serviceMetadata httpGetEnabled="true" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>
3 Réponses :
Vous avez le boîtier incorrect - la configuration de la WCF est sensible à la casse
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
Merci. Je savais que ça devait être quelque chose de simple !! Ne pouvait pas voir la forêt pour les arbres !! Merci.
J'espère que le Lien suivant peut vous fournir l'aide.
et Essayez également d'ajouter ce qui suit: p>
Comme la question avait déjà été répondu, et cela ne fonctionnerait pas comme il s'agit du mauvais protocole, j'utilise HTTP, pas Net.TCP.
Depuis que j'ai vu une entrée pour Net.TCP en adresse de base, j'ai présumé que vous l'utilisez aussi. De plus, au moment où j'ai répondu à la question, je n'ai pas reçu l'alerte quant à l'existence d'une autre réponse. Merci.
J'utilise nettcpbinding pour tous. Dans mon cas, j'avais le même problème et je l'ai résolu en ajoutant:
(a) un comportementConfiguration = "" au point de terminaison MEX p> (b) un comportementOfiguration = "MEX" à la définition du service: p> (c) entrée du comportement p>