2011-06-01 26 views
9

Tengo un servicio WCF con custombinding y funciona bien en http o https. Pero no tengo ni idea de cómo puedo ponerlo a disposición en http y https.WCF con custombinding en http y https

¿También es posible hacer eso?

Aquí está mi configuración en web.config.

<system.serviceModel> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> 
<behaviors> 
    <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpsGetEnabled="true" />      
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior>   
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <customBinding>      
     <binding name="customBinding0"> 
      <binaryMessageEncoding /> 
      <httpsTransport /> 
     </binding> 
    </customBinding> 
</bindings> 
<services> 
    <service name="MyWCFService">       
     <endpoint address="" binding="customBinding" bindingConfiguration="customBinding0" 
      contract="MyWCFService" /> 
     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
    </service>  
</services> 

Gracias

+0

agregar un punto final para http y otro para https resolverá su problema. – Deepesh

+0

Agregué como respuesta, pero igual recibí el error "No se pudo encontrar una dirección base que coincida con el esquema https para el punto final con vinculación CustomBinding. Los esquemas de dirección base registrados son [http]". – aunghn

+1

necesita proporcionar dos direcciones diferentes en los puntos finales ya que dos puntos finales no pueden compartir las mismas direcciones. – Deepesh

Respuesta

10

Tendrá que tener dos puntos finales, uno para HTTP y otro para HTTPS. debería funcionar bien.

<bindings> 
    <customBinding> 
     <binding name="customBindingHTTP"> 
      <binaryMessageEncoding /> 
      <httpTransport /> 
     </binding> 
     <binding name="customBindingHTTPS"> 
      <binaryMessageEncoding /> 
      <httpsTransport /> 
     </binding> 
    </customBinding> 
</bindings> 
<services> 
    <service name="MyWCFService"> 
     <endpoint address="" 
        binding="customBinding" 
        bindingConfiguration="customBindingHTTP" 
        contract="MyWCFService" /> 
     <endpoint address="" 
        binding="customBinding" 
        bindingConfiguration="customBindingHTTPS" 
        contract="MyWCFService" /> 
     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 
+1

Gracias por su respuesta. Pero aún no puedo hacer esto. Cuando exploro el servicio para comprobar si funciona, recibí este mensaje "No se pudo encontrar una dirección base que coincida con el esquema https para el punto final con vinculación de CustomBinding. Los esquemas de dirección base registrados son [http]". – aunghn

+0

¿Está habilitado HTTPS en IIS? Si elimina el punto final para el CustomBindingHTTP, ¿sigue funcionando? – carlosfigueira

+0

Sí, está funcionando si elimino. Tengo una duda más de acuerdo a tu respuesta. Si el sitio web no es un mapa con http o https, en ese momento no podemos poner ambos en el archivo de configuración. ¿No es así? Debido a que parece que el servidor no es un mapa con http, solo se puede navegar con https. – aunghn

Cuestiones relacionadas