Sunday, September 2, 2012

pollingDuplexHttpBinding - Super Slow / Delay

pollingDuplexHttpBinding - Super Slow / Delay

Hi ,

I'm trying few days to googling and fix it , but only fails , ( found few posts about the subject , but failed , or didn't undetstand )

My WCF Service connects to WPF application wsDualHttpBinding  without problem , very fast , any service publish event I get it on the second.

with Silverlight , pollingDuplexHttpBinding   , I get the service publish  event after 30+- seconds delay after the WPF app got it,

I though about going to TCP which is much faster as I read , but  I prefer fix this if possbile  (configuration is ready ^^ )

( can both Silverlight&WPF connecrt to the TCP binding ? )

Tried both deploy on IIS with debug=false , same,

Silverlight Client Code :

var address = new EndpointAddress("http://localhost/TheWCFSevice/Service1.svc/pollingDuplexHttpBinding");    var binding = new PollingDuplexHttpBinding(PollingDuplexHttpSecurityMode.None)  {  InactivityTimeout = TimeSpan.FromMinutes(60),  ReceiveTimeout = TimeSpan.FromMinutes(60),  MaxReceivedMessageSize = 2147483647,  MaxBufferSize = 2147483647,  OpenTimeout = TimeSpan.FromMinutes(5),  CloseTimeout = TimeSpan.FromMinutes(5),  DuplexMode = PollingDuplexMode.MultipleMessagesPerPoll,  SendTimeout = TimeSpan.FromMinutes(5),    };    ObjProxy = new WCFService.Service1Client(binding, address);

WCF Service - Web.config :

<system.serviceModel>

<!-- Register the binding extension from the SDK. -->
<extensions>
<bindingExtensions>
<add name="pollingDuplexHttpBinding"
type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,
System.ServiceModel.PollingDuplex,
Version=4.0.0.0,
Culture=neutral,
PublicKeyToken=31bf3856ad364e35" />
</bindingExtensions>
</extensions>

<bindings>
<wsDualHttpBinding>
<binding name="wsDualHttpBinding"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483646"
maxArrayLength="2147483646"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</wsDualHttpBinding>
<pollingDuplexHttpBinding>
<binding name="multipleMessagesPerPollPollingDuplexHttpBinding"
duplexMode="MultipleMessagesPerPoll"
maxOutputDelay="00:00:30"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483646"
maxArrayLength="2147483646"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</pollingDuplexHttpBinding>
</bindings>

<services>
<service behaviorConfiguration="" name="TheWCFService.Service1">

<endpoint address="wsDualHttpBinding"
binding="wsDualHttpBinding"
bindingConfiguration="wsDualHttpBinding"
contract="TheWCFService.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>

<endpoint
address="mex"
binding="mexHttpBinding"
bindingConfiguration=""
contract="IMetadataExchange" />

<endpoint
address="pollingDuplexHttpBinding"
binding="pollingDuplexHttpBinding"
bindingConfiguration="multipleMessagesPerPollPollingDuplexHttpBinding"
contract="TheWCFService.IService1">
</endpoint>

<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/Service1/" />
</baseAddresses>
</host>

</service>
</services>

<behaviors>
<serviceBehaviors>
<behavior name="">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
<dataContractSerializer maxItemsInObjectGraph="6553600"/>
<serviceThrottling maxConcurrentSessions="500" maxConcurrentCalls="500" maxConcurrentInstances="500" />
</behavior>
</serviceBehaviors>
</behaviors>

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>

Thanks!

Answers & Comments...




No comments:

Post a Comment

Send us your comment related to the topic mentioned on the blog