Tip: Sending large Peer Channel messages and NetPeerTcpBinding.ReaderQuotas


Scenario: Trying to send large WCF messages over the Peer Channel


Symptom: Peers do not receive messages even though NetPeerTcpBinding.MaxReceivedMessageSize is appropriately configured.


Tip: Set the NetPeerTcpBinding.ReaderQuota field values to integer.MaxValue like so:


<netPeerTcpBinding>


<binding name="standard_LargeMsgConfig0"  maxReceivedMessageSize="200000">  


                  <readerQuotas


maxDepth="2147483647"


                        maxStringContentLength="2147483647"


                        maxArrayLength="2147483647"


                        maxBytesPerRead="2147483647"


                        maxNameTableCharCount="2147483647" />


                  <security mode="None" />


     </binding>


</netPeerTcpBinding>


 


-Shalini.

Comments (2)
  1. madhus says:

    Thank you for the tip. I have a question regarding Custom Resolver versus PNRP for Peerchannel. I use the following in my AppConfig for PeerChannel:

    <netPeerTcpBinding>

    <binding name="Binding1" maxReceivedMessageSize="65536">

    <readerQuotas maxStringContentLength="65536" maxBytesPerRead="65536" />

    <resolver mode= "Pnrp">

    <custom address="net.tcp://LOCALHOST:75/GCT/peerResolverService"

     binding="netTcpBinding" bindingConfiguration="Binding2" resolverType="GCT.Resolver.CustomPeerResolver, GCT" />

    </resolver>

    <security mode="None">

    <transport credentialType="Password" />

    </security>

    </binding>

    </netPeerTcpBinding>

    Changing  < resolver mode= "Custom"> allows me to use Custom Peer Resolver or Pnrp. Is this the recommended approach? At times, I get a Peer Resolver error in my application when I use "Pnrp" – is this a known issue?

  2. peerchan says:

    Hi Madhu,

    (Some corrections to my earlier response, since I just noticed that you were explicitly specifying mode=PNRP – as opposed to mode=Auto- sorry for overlooking that :))..

    What is the PnrpResolver exception that you see?

    If you specified resolver mode =PNRP, it should just switch to using it, without any exception (unless the exception says PNRP is not enabled or something like that). Again, I’d be able to help you out more if you could let me know what exception you were seeing..

    Thanks,

    Shalini.

Comments are closed.

Skip to main content