2011-10-19 6 views
0

Je reçois le message d'erreur ci-dessous dans mon service WCF. Voici mon web, config. J'ai essayé quelques petites choses et rien n'a résolu l'erreur. Toute aide est appréciée.Erreur de configuration WCF IMetadataExchange

Le contrat 'IMetadataExchange' dans la configuration du client ne correspond pas au nom dans le contrat de service

<?xml version="1.0"?> 
<configuration> 
<connectionStrings/> 
    <system.web> 
    <compilation strict="false" explicit="true" targetFramework="4.0" debug="true"/> 
    </system.web> 
<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name=""> 
     <serviceMetadata httpGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <binding name="SNCBinding" closeTimeout="00:10:00" openTimeout="00:10:00" 
     receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647" 
     maxReceivedMessageSize="2147483647" textEncoding="utf-8"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="TransportCredentialOnly"> 
     <transport clientCredentialType="Windows" proxyCredentialType="Windows" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
    multipleSiteBindingsEnabled="true" /> 
<services> 
    <service name="SNC.MaterialRequest.WCF.MaterialRequest"> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="SNCBinding" 
     contract="SNC.MaterialRequest.WCF.MaterialRequest" /> 
    </service> 
</services> 
</system.serviceModel> 
</configuration> 
+1

Peut-être que vous pourriez éditer votre titre pour être plus descriptif. Il doit y avoir 10.000 questions sur ce site qui sont sur "Erreur de configuration WCF". –

+0

Lorsque l'erreur semble être dans la ** configuration du client ** - pourquoi nous montrez-vous le web.config côté serveur ?? Nous devons voir le ** fichier de configuration client! ** –

+0

Quel fichier de configuration client? J'utilise le wcftestclient – Jim

Répondre

3

Avez-vous installé le SDK des services .Net par hasard?

Voir: http://azure.snagy.name/blog/?tag=imetadataexchange

On dirait qu'il ajoute un point de terminaison client pour IMetaDataExchange dans votre machine.config. Ainsi, vous pouvez soit le supprimer de votre machine.config, ou ajouter

<client> 
    <remove contract=”IMetadataExchange” name=”sb” /> 
</client> 

à chaque app.config/web.config à partir de maintenant.

EDIT: Notez que cela ne devrait pas affecter votre application actuelle, c'est juste un avertissement que vous pouvez ignorer. Il est mentionné ici, aussi: http://blogs.msdn.com/b/wcftoolsteamblog/archive/2008/08/28/tips-for-wcf-tools-in-vs2008-sp1.aspx

+0

Non je n'ai pas installé le sdk, Cela a juste commencé à se produire aujourd'hui, j'ai essayé d'enlever cela, mais je reçois la même erreur – Jim

+0

vous avez raison, même si elle affiche comme une erreur, c'est juste un avertissement. Merci ! – Jim

0

Voici la question:

contract="SNC.MaterialRequest.WCF.MaterialRequest" 

Ce n'est pas identique IMetadataExchange en erreur Il est donc faux dans la configuration côté serveur ou dans la configuration côté client. Je dirais dans le côté serveur, car cela devrait être l'interface.

+0

correct, je ne suis pas sûr d'où provient IMetadataExchange. J'utilise basichttpbinding – Jim