locked
Using gzipMessageEncoding with compression RRS feed

  • Question

  • On the thread: http://social.msdn.microsoft.com/forums/en-US/uklaunch2007ado.net/thread/366cd6ce-f68b-4be6-8a7a-722052e67f27/

    The example states this:

    <!--  
     
    thanks for your post, it helped me to understand a little more about setting up the configuration. We use in fact only desktops to synchronize with a server and I want the gzip encoding adapted for that situation. I think the problem in my thinking was that I thought I had to use wsHttpBinding to set up the appropriate attributes and that binding does not combine with the encoding mechanism, since it is configured with customBinding. So this morning I got it working (at least I dont get any errors I have not measured yet the performance advantage, but I am sure it is considerable.  
     
    So here are some steps to help others:  
     
    1. Get the Demo running from the WCF Samples showing Gzip Encoding path: WcfSamples\TechnologySamples\Extensibility\MessageEncoder\Compression\..  
     
    (you can download them from: http://msdn2.microsoft.com/en-us/library/ms751458.aspx)  
     
       
     
    In your app.config and your web.config (at the server) do steps 2-5 (4 only for web.config)  
     
       
     
    2. Make a reference to the GZipEncoder assembly from your wcf service and your app.  
     
    3. Add an extensions section below system.serviceModel  
     
    --> 
     
    <system.serviceModel> 
     
    <extensions> 
     
    <bindingElementExtensions> 
     
    <add name="gzipMessageEncoding" type="Microsoft.ServiceModel.Samples.GZipMessageEncodingElement, GZipEncoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
     
    </bindingElementExtensions> 
     
    </extensions> 
     
     
    <!--4. Configure a endpoint using the gzip custom binding:--> 
     
    <!-- Define another endpoint using Compression --> 
     
    <endpoint address="gzip" binding="customBinding"   
     
    bindingConfiguration="gzipCustomBinding" 
     
    bindingName="gzipCustomBinding"   
     
    contract="WcfSyncService.ISyncService">  
     
    </endpoint> 
     
       
     
    <!--5. Define the custom binding for that endpoint (adapt the attributes you require):--> 
     
    <customBinding> 
     
    <binding name="gzipCustomBinding">  
     
    <gzipMessageEncoding innerMessageEncoding="textMessageEncoding" /> 
     
    <httpTransport hostNameComparisonMode="StrongWildcard" 
     
    manualAddressing="False" 
     
    maxReceivedMessageSize="6553600" 
     
    authenticationScheme="Anonymous" 
     
    bypassProxyOnLocal="False" 
     
    realm="" 
     
    useDefaultWebProxy="True" /> 
     
    </binding> 
     
    </customBinding> 
     
       
     
    <!--Try to call the .svc in your browser e.g.http://localhost/SyncService/SyncService.svc. This will show up errors in your configuration and missing references.  
     
       
     
    6. In your app.config provide the endpoint to use gzip compression--> 
     
    <client> 
     
     
     
    <endpoint address=http://servername/SyncService/SyncService.svc/gzip  
     
    binding="customBinding" bindingConfiguration="gzipCustomBinding_ISyncService" 
     
    contract="SyncService.ISyncService" name="gzipCustomBinding_ISyncService" /> 
     
     
    </client> 
     
       
     
    <!--That should do it. Hope this will help others. It would be interesting to hear in this forum of results regarding performance improvement.--> 
     

    But there is a question that states:

    <!--I am not able to bind the customBinding in the web.config file. In my web.config file of my wcf service   
     
    I have the following configurations. but its says "The element binding has invalid child elements  'gZipCustomBinding' ".List of possible elements expected are  ' binaryMessageEncoding etc etc etc.  
     
    The thing highlighted in yellow is giving me error.--> 
       
    <bindings> 
     
    <customBinding> 
     
    <binding name="gzipCustomBinding">  
     
    <gzipMessageEncoding innerMessageEncoding="textMessageEncoding" /> 
     
    <httpTransport hostNameComparisonMode="StrongWildcard" 
     
    manualAddressing="False" 
     
    maxReceivedMessageSize="6553600" 
     
    authenticationScheme="Anonymous" 
     
    bypassProxyOnLocal="False" 
     
    realm="" 
     
    useDefaultWebProxy="True" /> 
     
    </binding> 
     
    </customBinding> 
     
    </bindings> 
     

    That is my question why is it erroring there and how can I fix it?

    • Moved by Hengzhe Li Friday, April 22, 2011 5:07 AM (From:SyncFx - Microsoft Sync Framework Database Providers [ReadOnly])
    Thursday, March 5, 2009 3:14 PM

Answers

All replies