BinaryMessageEncoding and TcpStreaming Binding in September CTP

Was binaryMessageEncoding removed from WCF due to the fact that it was not interoperable

In Beta1, you could flag a binding for binary encoding this way

< binding configurationName="TcpStreaming">
  < binaryMessageEncoding />
< /binding>

September CTP bits don't like that BinaryMessageEncoding element. I am told that it is invalid child element of binding. I can't find any examples in the docs that don't do it this way, but assume that the docs haven't totally been cleaned up yet.


Answer this question

BinaryMessageEncoding and TcpStreaming Binding in September CTP

  • Detroit

    Thanks Willie. So of course, I'm not supposed to intuit this. Can you point me to something where I can read up on it or point others to it
  • BrianFerguson

    Hey Julie,

    Yes, lot of refactoring has been done in CTP bits (now the baby looks better ;-)). So some of your beta 1 apps won't even compile. However, AFAIK, binary message encoding section is not changed. but the way it is used is slightly different.

    Try this:
       <bindings>
          <customBinding>
            <binding name="myTcp">
              <binaryMessageEncoding />
              <tcpTransport/>
            </binding>
          </customBinding>
        </bindings>


  • chamsoft

    Thanks for the reply. I have definitely been having some fun reworking all of the config files for the new bits! I just wonder though if the binding I am using, which is not a custom binding but one of the standard configurations, maybe does not accept binary encoding any more.. I basically have it as an inner element of the binding, as you do, but it is unhappy in this type of binding where it is okay in other binding flavors. I'll keep my eye out for more info on this.
  • John_Mac

    okay I made a strange discovery. When that element was AFTER the <tcpTransport> element, it gave me the problem. But if I put the element before <tcpTransport> it was happy. Go figure. Maybe by design and something to do with defining the pipe - order is critical, I'll have to check this out.
  • MVP_Seo Woo Seok

    BTW: AFAIK the current ordering is something like this:
    <protocol/>
    <encoding/>
    <transport/>

    Hope this helps.

    Cheers


  • Prokennedy

    Julie:

    What buddhike said is correct. Another point to re-affirm: You can omit anything else BUT you MUST have the transport layer on the listening or channel stacks. That is the last of the layers before the message hits the wire.

  • agentgonzo

    Absolutely. Channels in the channel stack are created in the order you define them in  your binding.  So it is really  important to place the transport channel at the end of the list. BTW:  In beta 1 the encoder was the last channel. Therefore you should re-oder your custom bindings for Sep-CTP bits.

    Cheers


  • BinaryMessageEncoding and TcpStreaming Binding in September CTP