SSL (HTTPS)을 사용하는 게시물의 WCF 문제
문제
나는 현재 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>
제휴하지 않습니다 StackOverflow