2016-07-18 66 views
0

如何更改web.config以在我的WCF Web服務中爲https定義maxReceivedMessageSize?更改HTTPS的WCF maxReceivedMessageSize

我有跨HTTPS運行的WCF 4 web服務,我想設置maxReceivedMessageSize的結合。

web配置有一個協議映射:

<protocolMapping> 
    <add binding="basicHttpsBinding" scheme="https" /> 
</protocolMapping> 

我曾試圖消除映射並利用端點:

<services> 
     <service name="Company.Product.Service"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="https://mydomain/dir" /> 
      </baseAddresses> 
     </host> 
     <endpoint address="Service.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService" contract="IService"> 
     </endpoint> 
     </service> 
</services> 

...

<bindings> 
     <basicHttpBinding> 
     <binding name="BasicHttpBinding_IService" 
      maxBufferPoolSize="2147483647" 
      maxBufferSize="2147483647" 
      maxReceivedMessageSize="2147483647" 
      messageEncoding="Text"> 
      <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      <security mode="Transport"> 
       <transport clientCredentialType="None" proxyCredentialType="None" /> 
      </security> 
     </binding> 
     </basicHttpBinding> 

但是,當我刪除協議映射,我得到:

服務無法啓動。 System.InvalidOperationException:服務 'MyServiceNamespace.RequestProcessorImpl'具有零個應用程序 (非基礎結構)端點。這可能是因爲沒有爲您的應用程序找到配置 文件,或者因爲沒有在配置文件中找到與服務名稱匹配的服務元素 或 ,因爲沒有在服務元素中定義端點。

如何更改配置以在我的WCF webservice中爲https定義maxReceivedMessageSize?

回答

1

感謝蒂姆爲his post這導致我一個答案。

對我來說,關鍵是要省略「」屬性以結合定義爲< basicHttpsBinding>:

<basicHttpsBinding> 
     <binding maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text"> 
      <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      <security mode="Transport"> 
       <transport clientCredentialType="None" proxyCredentialType="None" /> 
       <message clientCredentialType="Certificate" algorithmSuite="Default" /> 
      </security> 
     </binding> 

然後,這將覆蓋defaul由協議映射指向。

相關問題