문제

나는 현재 WebHTTP 바인딩 WCF RESTFUL 서비스를 가지고 있으며 HTTP보다 훌륭하게 작동합니다. WebConfig 설정으로 인해 큰 크기의 게시물을 만들 수 있습니다. 이제 HTTPS (SSL)를 통해 사용하려고 노력하고 있습니다. 게시물이 없어도 파일 크기가 일정량 이상일 때 작동하지 않습니다. WebConfig가 더 큰 크기를 지정하고 HTTP보다 잘 작동하기 때문에 이것이 왜 그런지 궁금했습니다. 여기에 관련 WebConfig가 있습니다. 모든 제안이 있습니다.

감사

<system.serviceModel>
<client>
  <endpoint binding="webHttpBinding" bindingConfiguration="webHttp"
    contract="PrimeStreamInfoServices.IService1" name="Client" />
</client>
<bindings>
  <webHttpBinding>
    <binding name="webHttp" maxBufferSize="15000000" maxBufferPoolSize="15000000"
      maxReceivedMessageSize="15000000">
      <readerQuotas maxDepth="15000000" maxStringContentLength="10000000" 
        maxArrayLength="15000000" maxBytesPerRead="15000000" maxNameTableCharCount="10000000" />
      <security mode="None">
        <transport clientCredentialType="None" proxyCredentialType="None"
          realm="string" />
      </security>
    </binding>
  </webHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="PrimeStreamInfoServices.Service1Behavior"
    name="PrimeStreamInfoServices.Service1">
    <endpoint address="" binding="webHttpBinding"
      bindingConfiguration="webHttp" contract="PrimeStreamInfoServices.IService1" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="PrimeStreamInfoServices.Service1Behavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
      <serviceCredentials>
        <!--
        <serviceCertificate storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" findValue="TempCa" />
          -->
      </serviceCredentials>

    </behavior>
  </serviceBehaviors>
</behaviors>
<diagnostics>

  <messageLogging logMalformedMessages="true"  logMessagesAtServiceLevel="true"
    logMessagesAtTransportLevel="true" />

</diagnostics>

도움이 되었습니까?

해결책

SSL을 통해 webhttpbinding을 사용하려면 다음과 같은 전송 보안을 사용할 수 있도록 바인딩을 구성해야합니다.

<security mode="Transport"> 

이것 링크 다음 오류를 처리하기 위해 샘플 구성으로 일부 세부 사항을 제공합니다.

바인딩 webhttpbinding과 엔드 포인트의 체계 HTTP와 일치하는 기본 주소를 찾을 수 없습니다. 등록 된 기본 주소 체계는 [https]입니다.

블로그에서 샘플 구성 :

<system.serviceModel>
<behaviors>    
 <endpointBehaviors>
  <behavior name="TestServiceAspNetAjaxBehavior">
   <enableWebScript />
  </behavior>
 </endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
 <service name="TestService">
  <endpoint address="" behaviorConfiguration="TestServiceAspNetAjaxBehavior"
   binding="webHttpBinding" bindingConfiguration="webBinding" contract="TestService" />
 </service>
</services>
 <bindings>
   <webHttpBinding>
     <binding name="webBinding">
       <security mode="Transport">
       </security>
     </binding>
   </webHttpBinding>
 </bindings>
</system.serviceModel>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top