簡體   English   中英

WCF-自定義綁定的配置

[英]WCF - configuration for custom binding

我正在嘗試通過配置將自定義消息編碼器插入WCF管道。 之前我使用的是現成的“ NetTcpBinding”,其配置文件如下所示

<bindings>
      <netTcpBinding>
         <binding name="DefaultNetTcpBinding"
                 maxBufferSize="26214400"
                 maxReceivedMessageSize="26214400"
                 maxBufferPoolSize="26214400"
                 listenBacklog="1000"
                 maxConnections="1000"
                 closeTimeout="00:01:00"
                 openTimeout="00:10:00"
                 receiveTimeout="00:01:30"
                 sendTimeout="00:01:00">
          <security mode="None"/>
          <reliableSession ordered="true" inactivityTimeout="00:01:30" enabled="true"/>
        </binding>
      </netTcpBinding>
</bindings>

為了插入自定義編碼器,我嘗試遵循自定義綁定配置

<bindings>
      <customBinding>
          <binding name="compactBinding">
              <compactMessageEncoding>
                          <binaryMessageEncoding/>
              </compactMessageEncoding>
              <tcpTransport />
          </binding>
      </customBinding>
  </bindings>

工作正常。 但我還是希望我早像MAXBUFFERSIZE,maxReceivedMessageSize,maxBufferPoolSize等設置,它似乎<binding>元素下<customBinding>只有closeTimeout,openTimeout,receiveTimeout,的SendTimeout。

如何傳遞其他信息?

謝謝

嘗試添加HttpTransportBindingElement。 我認為這將為您解決問題。 這是鏈接

嘗試在如下代碼中添加配置:

((CustomBinding)servicio.Endpoint.Binding).Elements.Find<TransportBindingElement>().MaxReceivedMessageSize = int.MaxValue;

並將一個readerQuotas添加到web.config中:

<readerQuotas maxDepth="90000" maxStringContentLength="2147483647"
                         maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<customBinding>
      <binding>
       ...
        <tcpTransport listenBacklog ="100" maxBufferPoolSize ="524288" maxBufferSize ="2147483647" maxReceivedMessageSize ="2147483647"/>
       ...
      </binding>
</customBinding>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM