2010-09-15 19 views
5

Quiero usar wshttpbinding (con SSL y sin SSL) en un solo servicio pero no funciona, cualquiera lo implementó. Entonces, por favor guía cómo puedo lograr eso?Usar wshttpBinding con SSL y wsHttpBinding sin SSL en un solo servicio

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="CommonBehaviour"> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
     <serviceCredentials> 
     <serviceCertificate findValue="AzilenTechnology" x509FindType="FindBySubjectName" /> 
     </serviceCredentials> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <binding name="basicHttpBindingConfig" closeTimeout="00:10:00" 
     openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647" 
     maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
     messageEncoding="Mtom"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
    </binding> 
    </basicHttpBinding> 
    <wsHttpBinding> 
    <binding name="wsHttpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00" 
     sendTimeout="00:10:00" bypassProxyOnLocal="true" maxBufferPoolSize="2147483647" 
     maxReceivedMessageSize="2147483647" messageEncoding="Mtom"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="None" /> 
    </binding> 
    </wsHttpBinding> 
</bindings> 
<services> 
    <service behaviorConfiguration="CommonBehaviour" name="wcfAllInOne.wcfFileIO"> 
    <endpoint binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" /> 
    <endpoint address="http://localhost:82/WCFAllInOne/wcfFileIO.svc/basicHttpEndPoint" binding="basicHttpBinding" 
     bindingConfiguration="basicHttpBindingConfig" name="BasicHttp" 
     contract="wcfAllInOne.IwcfFileIO" /> 
    <endpoint address="http://localhost:82/WCFAllInOne/wcfFileIO.svc/wsHttpBindingEndPoint" binding="wsHttpBinding" 
     bindingConfiguration="wsHttpBindingConfig" name="wsHttp" contract="wcfAllInOne.IwcfFileIO" /> 
    <endpoint address="https://localhost:444/WCFAllInOne/wcfFileIO.svc/wsHttpSslEndPoint" binding="wsHttpBinding" 
     bindingConfiguration="wsHttpBindingConfig" name="wsHttpSsl" 
     contract="wcfAllInOne.IwcfFileIO" /> 
    <endpoint binding="mexHttpsBinding" bindingConfiguration="" contract="IMetadataExchange" /> 
     </service> 
</services> 

+0

Muéstranos qué configuración no funciona para ti. –

Respuesta

9

he encontrado la solución, por qué mi última configuración no funciona,

Mi primer error es que yo solía misma configuración para wsHttpBinding con SSL y sin SSL wsHttpBinding

Aquí en mi archivo de configuración, acababa de crear solo un "wsHttpBindingConfig" para ambos extremos (uno tiene una dirección http y el otro tiene una dirección https),

Ahora estoy usando dos configuraciones diferentes para resolver este problema.

<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="CommonBehaviour"> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
     <serviceCredentials> 
     <serviceCertificate findValue="AzilenTechnologies" x509FindType="FindBySubjectName" /> 
     </serviceCredentials> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <binding name="basicHttpBindingConfig" closeTimeout="00:10:00" 
     openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647" 
     maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
     messageEncoding="Mtom"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security> 
     <transport> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     </security> 
    </binding> 
    </basicHttpBinding> 
    <wsHttpBinding> 
    <binding name="wsHttpsBindingConfig" closeTimeout="00:10:00" 
     openTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="true" 
     maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
     messageEncoding="Mtom"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     </security> 
    </binding> 
    <binding name="wsHttpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00" 
     sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
     messageEncoding="Mtom"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
     maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security> 
     <transport> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 
<services> 
    <service behaviorConfiguration="CommonBehaviour" name="wcfAllInOne.wcfFileIO"> 
    <endpoint binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" /> 
    <endpoint address="/basicHTTPEndPoint" binding="basicHttpBinding" 
     bindingConfiguration="basicHttpBindingConfig" name="basicHttp" 
     contract="wcfAllInOne.IwcfFileIO" /> 
    <endpoint address="/wsHTTPEndPoint" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingConfig" 
     name="wsHttp" contract="wcfAllInOne.IwcfFileIO" /> 
    <endpoint address="/wsHTTPSEndPoint" binding="wsHttpBinding" 
     bindingConfiguration="wsHttpsBindingConfig" name="wsHttpSsl" 
     contract="wcfAllInOne.IwcfFileIO" /> 
    <endpoint binding="mexHttpsBinding" bindingConfiguration="" contract="IMetadataExchange" /> 
    </service> 
</services> 

+0

por lo tanto, ahora esta configuración funciona :, –

+0

Espero que podamos usar WSHttpBinding 'sin SSL && https: //' ¿correcto? –

+0

@murali Sí, funciona –

Cuestiones relacionadas