Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use wshttpBinding with SSL and wsHttpBinding without SSL in single service

I want to use wshttpbinding (with SSL and without SSL) in single service but it not works, anybody had implemented it. So please guide how can i achieve that?

<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>

like image 666
Miraj Baldha Avatar asked Sep 15 '10 05:09

Miraj Baldha


1 Answers

I found the solution, why my last configuration doesn't work,

My first mistake is that i used same configuration for wsHttpBinding with ssl and wsHttpBinding Without SSL

Here in my config file,i had just created only one "wsHttpBindingConfig" for both endpoint (one has http address and another one has https address),

Now i am using two different configuration for to solve this problem.

<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>

like image 99
Miraj Baldha Avatar answered Nov 15 '22 09:11

Miraj Baldha