2010-02-12 64 views
4

我目前有一个webHttp绑定WCF宁静服务,它可以很好地处理http,我可以通过我的webconfig设置使Post大尺寸,现在我试图通过https使用它(SSL),现在我的工作正常,但我的帖子不,它不工作,当文件大小超过一定的数量时,我想知道为什么这可能是因为我的webconfig指定一个更大的大小,它可以很好地通过HTTP,在这里是我的相关webconfig ..任何建议WCF使用SSL的POST问题(https)

感谢

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

回答

8

如果你想使用SSL上的WebHttpBinding那么你已经配置结合使用传输安全机制,如:

<security mode="Transport"> 

link提供了样本配置一些细节处理以下错误:

Could not find a base address that matches scheme http for the endpoint with binding WebHttpBinding. Registered base address schemes are [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>