天天看點

WCF 提高傳輸資料性能方法之一 (使用壓縮)

在WCF中使用Gzip壓縮的配置方法

這是一種基于WCF通道傳輸資料的壓縮技術,隻要通過配置就可以在自己的項目中使用壓縮技術,比較友善!

<col>

​<code>​01​</code>​

​<code>​服務端App.config ​</code>​

​<code>​02​</code>​

​<code>​&lt;system.serviceModel&gt; ​</code>​

​<code>​03​</code>​

​<code>​&lt;services&gt; ​</code>​

​<code>​04​</code>​

​<code>​&lt;service behaviorConfiguration=​</code>​​<code>​"metadataBehavior"​</code>​ ​<code>​name=​</code>​​<code>​"WcfTest.Services.SwfBuilderService"​</code>​​<code>​&gt; ​</code>​

​<code>​05​</code>​

​<code>​&lt;endpoint address=​</code>​​<code>​"http://127.0.0.1:99/swfbuild"​</code>​ ​<code>​binding=​</code>​​<code>​"customBinding"​</code>​ ​<code>​bindingConfiguration=​</code>​​<code>​"BufferedHttpSampleServer"​</code>​ ​<code>​bindingName=​</code>​​<code>​"BufferedHttpSampleServer"​</code>​ ​<code>​contract=​</code>​​<code>​"WcfTest.Contracts.ISwfBuilder"​</code>​ ​<code>​/&gt; ​</code>​

​<code>​06​</code>​

​<code>​&lt;/service&gt; ​</code>​

​<code>​07​</code>​

​<code>​&lt;/services&gt; ​</code>​

​<code>​08​</code>​

​<code>​&lt;extensions&gt; ​</code>​

​<code>​09​</code>​

​<code>​&lt;bindingElementExtensions&gt; ​</code>​

​<code>​10​</code>​

​<code>​&lt;add name=​</code>​​<code>​"gzipMessageEncoding"​</code>​ ​<code>​type=​</code>​​<code>​"GZipEncoder.GZipMessageEncodingElement, GZipEncoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"​</code>​ ​<code>​/&gt; ​</code>​

​<code>​11​</code>​

​<code>​&lt;/bindingElementExtensions&gt; ​</code>​

​<code>​12​</code>​

​<code>​&lt;/extensions&gt; ​</code>​

​<code>​13​</code>​

​<code>​&lt;bindings&gt; ​</code>​

​<code>​14​</code>​

​<code>​&lt;customBinding&gt; ​</code>​

​<code>​15​</code>​

​<code>​&lt;binding name=​</code>​​<code>​"BufferedHttpSampleServer"​</code>​​<code>​&gt; ​</code>​

​<code>​16​</code>​

​<code>​&lt;gzipMessageEncoding innerMessageEncoding=​</code>​​<code>​"textMessageEncoding"​</code>​ ​<code>​/&gt; ​</code>​

​<code>​17​</code>​

​<code>​&lt;httpTransport hostNameComparisonMode=​</code>​​<code>​"StrongWildcard"​</code>​

​<code>​18​</code>​

​<code>​manualAddressing=​</code>​​<code>​"False"​</code>​

​<code>​19​</code>​

​<code>​maxReceivedMessageSize=​</code>​​<code>​"65536"​</code>​

​<code>​20​</code>​

​<code>​authenticationScheme=​</code>​​<code>​"Anonymous"​</code>​

​<code>​21​</code>​

​<code>​bypassProxyOnLocal=​</code>​​<code>​"False"​</code>​

​<code>​22​</code>​

​<code>​realm=​</code>​​<code>​""​</code>​

​<code>​23​</code>​

​<code>​useDefaultWebProxy=​</code>​​<code>​"True"​</code>​ ​<code>​/&gt; ​</code>​

​<code>​24​</code>​

​<code>​&lt;/binding&gt; ​</code>​

​<code>​25​</code>​

​<code>​&lt;/customBinding&gt; ​</code>​

​<code>​26​</code>​

​<code>​&lt;/bindings&gt; ​</code>​

​<code>​27​</code>​

​<code>​&lt;system.serviceModel&gt;​</code>​

​<code>​用戶端App.config ​</code>​

​<code>​&lt;binding name=​</code>​​<code>​"WSHttpBinding_SwfBuilderService"​</code>​​<code>​&gt; ​</code>​

​<code>​&lt;httpTransport manualAddressing=​</code>​​<code>​"false"​</code>​

​<code>​bypassProxyOnLocal=​</code>​​<code>​"false"​</code>​

​<code>​hostNameComparisonMode=​</code>​​<code>​"StrongWildcard"​</code>​

​<code>​proxyAuthenticationScheme=​</code>​​<code>​"Anonymous"​</code>​

​<code>​useDefaultWebProxy=​</code>​​<code>​"true"​</code>​ ​<code>​/&gt; ​</code>​

​<code>​&lt;/system.serviceModel&gt; ​</code>​

​<code>​&lt;client&gt; ​</code>​

​<code>​&lt;endpoint address=​</code>​​<code>​"http://127.0.0.1:99/swfbuild"​</code>​ ​<code>​binding=​</code>​​<code>​"customBinding"​</code>​

​<code>​bindingConfiguration=​</code>​​<code>​"WSHttpBinding_SwfBuilderService"​</code>​ ​<code>​contract=​</code>​​<code>​"SwfBuild.SwfBuilderService"​</code>​

​<code>​name=​</code>​​<code>​"WSHttpBinding_SwfBuilderService"​</code>​​<code>​&gt; ​</code>​

​<code>​&lt;/endpoint&gt; ​</code>​

​<code>​28​</code>​

​<code>​&lt;metadata&gt; ​</code>​

​<code>​29​</code>​

​<code>​&lt;policyImporters&gt; ​</code>​

​<code>​30​</code>​

​<code>​&lt;extension type=​</code>​​<code>​"GZipEncoder.GZipMessageEncodingBindingElementImporter, GZipEncoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"​</code>​ ​<code>​/&gt; ​</code>​

​<code>​31​</code>​

​<code>​&lt;/policyImporters&gt; ​</code>​

​<code>​32​</code>​

​<code>​&lt;/metadata&gt; ​</code>​

​<code>​33​</code>​

​<code>​&lt;/client&gt;​</code>​