Problema do WCF com postagens usando SSL (HTTPS)
Pergunta
Atualmente, tenho um serviço WCF RESTful de ligação a WebHTTP, ele funciona muito bem sobre o HTTP, posso fazer um post de tamanhos grandes devido às minhas configurações do WebConfig, agora estou tentando usá -lo sobre HTTPS (SSL), agora meu trabalho é bom, mas meu As postagens não funcionam, não funciona quando o tamanho do arquivo está acima de uma certa quantia, eu estava me perguntando por que isso poderia ser desde que meu webconfig especifica um tamanho maior e funciona bem com http, aqui está o meu webconfig relevante. Qualquer sugestão
Obrigado
<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>
Solução
Se você deseja usar o WebHttpBinding sobre o SSL, configure sua encadernação para usar a segurança do transporte como:
<security mode="Transport">
este link Fornece alguns detalhes com a configuração de amostra para lidar com o seguinte erro:
Não foi possível encontrar um endereço base que corresponda ao esquema HTTP para o ponto final com a ligação de WebHTTPBINDing. Os esquemas de endereço base registrados são [HTTPS
Exemplo de configuração do blog:
<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>