2010-09-15 11 views
5

Voglio utilizzare wshttpbinding (con SSL e senza SSL) in servizio singolo ma non funziona, nessuno l'ha implementato. Quindi, per favore guida come posso ottenerlo?Utilizzare wshttpBinding con SSL e wsHttpBinding senza SSL nel servizio singolo

<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

Mostraci quale configurazione non funziona per te. –

risposta

9

ho trovato la soluzione, perché la mia ultima configurazione non funziona,

Il mio primo errore è che ho usato stessa configurazione per wsHttpBinding con SSL e wsHttpBinding Senza SSL

Qui nel mio file di configurazione, avevo appena creato un solo "wsHttpBindingConfig" per entrambi gli endpoint (uno ha l'indirizzo http e un altro ha l'indirizzo https),

Ora sto usando due diverse configurazioni per risolvere questo 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

così, ora questa configurazione funziona, " –

+0

Speriamo di poter usare WSHttpBinding' senza SSL && https: // 'giusto? –

+0

@murali Sì, funziona –