2009-06-22 11 views
17

Estoy usando VSTS 2008 + C# + .Net 3.0. Estoy usando WCF autohospedado. Al ejecutar la siguiente instrucción, existe el siguiente error de enlace no encontrado. He publicado todo mi archivo app.config, ¿alguna idea de lo que está mal?Error de unión no encontrado WCF?

ServiceHost host = new ServiceHost(typeof(MyWCFService)); 

mensaje de error,

Configuration binding extension 'system.serviceModel/bindings/MyBinding' could not be found. Verify that this binding extension is properly registered in system.serviceModel/extensions/bindingExtensions and that it is spelled correctly. 

app.config completa,

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="MyBinding" 
      closeTimeout="00:00:10" 
      openTimeout="00:00:20" 
      receiveTimeout="00:00:30" 
      sendTimeout="00:00:40" 
      bypassProxyOnLocal="false" 
      transactionFlow="false" 
      hostNameComparisonMode="WeakWildcard" 
      maxReceivedMessageSize="100000000" 
      messageEncoding="Mtom" 
      proxyAddress="http://foo/bar" 
      textEncoding="utf-16" 
      useDefaultWebProxy="false"> 
      <reliableSession ordered="false" 
       inactivityTimeout="00:02:00" 
       enabled="true" /> 
      <security mode="Transport"> 
      <transport clientCredentialType="Digest" 
       proxyCredentialType="None" 
       realm="someRealm" /> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <services> 
     <service name="MyWCFService" 
       behaviorConfiguration="mexServiceBehavior"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:9090/MyService"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" binding="MyBinding" contract="IMyService"/> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="mexServiceBehavior"> 
      <serviceMetadata httpGetEnabled="True"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration> 

gracias de antemano, George

Respuesta

23

Usted ha entendido mal cómo configurar encuadernaciones - su unión en el punto final debe ser un protocolo conocido;

<endpoint address="" binding="wsHttpBinding" contract="IMyService"/> 

vez que haya que luego se puede especificar la configuración de enlace que ha definido en la configuración de ese protocolo utilizando el elemento bindingConfiguration tanto

<endpoint address="" binding="wsHttpBinding" 
    bindingConfiguration="MyBinding" contract="IMyService"/> 
+1

+1 Sí, esa es la causa - la forma George2 es el uso de "Mi enlace" es como si hubiera una VINCULACIÓN completa (no solo una configuración de enlace) con ese nombre. –

+0

¡Genial! Resuelto Pero me encontré con un problema nuevo al aplicar sus comentarios y el nuevo problema es sobre el tema vinculante de mex. He publicado aquí, una idea de lo que está mal? http://stackoverflow.com/questions/1026149/mex-binding-error-in-wcf – George2

+0

Gracias marc_s! // me sonrojo mi falta para entender completamente la tecnología. He publicado un problema relacionado con mex (como un nuevo problema, empiezo un nuevo hilo para que quede claro), agradezco si pudiera echar un vistazo, http://stackoverflow.com/questions/1026149/mex-binding -error-in-wcf – George2

Cuestiones relacionadas