title: Silverlight PollingDuplex InnerChannel faulted with multipleMessagesPerPoll (serverPollTimeout)
body: <p>Im running silverlight client version 4.0.50917.0  and SDK version 4.0.50826.1</p>
  <p>I've created a simple silverlight client against a wcf pollingduplex binding:</p>
  <p>Web.config:</p>
  <pre><code>&lt;system.serviceModel&gt;
  &lt;extensions&gt;
    &lt;bindingExtensions&gt;
      &lt;add name=&quot;pollingDuplexHttpBinding&quot;
          type=&quot;System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,System.ServiceModel.PollingDuplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot; /&gt;
    &lt;/bindingExtensions&gt;
  &lt;/extensions&gt;
  &lt;behaviors&gt;
    &lt;serviceBehaviors&gt;
      &lt;behavior name=&quot;sv&quot;&gt;
        &lt;serviceMetadata httpGetEnabled=&quot;true&quot; /&gt;
        &lt;serviceDebug includeExceptionDetailInFaults=&quot;true&quot; /&gt;
        &lt;serviceThrottling maxConcurrentSessions=&quot;2147483647&quot;/&gt;
      &lt;/behavior&gt;
    &lt;/serviceBehaviors&gt;
  &lt;/behaviors&gt;
  
  &lt;bindings&gt;
    &lt;!-- Create the polling duplex binding. --&gt;
    &lt;pollingDuplexHttpBinding&gt;
      &lt;binding name=&quot;multipleMessagesPerPollPollingDuplexHttpBinding&quot;
               duplexMode=&quot;MultipleMessagesPerPoll&quot;
               maxOutputDelay=&quot;00:00:01&quot;/&gt;
  
      &lt;binding name=&quot;singleMessagePerPollPollingDuplexHttpBinding&quot;
               maxOutputDelay=&quot;00:00:01&quot;/&gt;
    &lt;/pollingDuplexHttpBinding&gt;
  &lt;/bindings&gt;
  &lt;services&gt;
    &lt;service behaviorConfiguration=&quot;sv&quot; name=&quot;Backend.GUIPollingService&quot;&gt;
      &lt;endpoint address=&quot;&quot; binding=&quot;pollingDuplexHttpBinding&quot; bindingConfiguration=&quot;singleMessagePerPollPollingDuplexHttpBinding&quot;
        contract=&quot;Backend.IGUIPollingService&quot; /&gt;
      &lt;endpoint address=&quot;mmpp&quot; binding=&quot;pollingDuplexHttpBinding&quot; bindingConfiguration=&quot;multipleMessagesPerPollPollingDuplexHttpBinding&quot;
        name=&quot;multimessage&quot; contract=&quot;Backend.IGUIPollingService&quot; /&gt;
      &lt;endpoint address=&quot;mex&quot; binding=&quot;mexHttpBinding&quot; contract=&quot;IMetadataExchange&quot; /&gt;
    &lt;/service&gt;
  &lt;/services&gt;
  &lt;serviceHostingEnvironment multipleSiteBindingsEnabled=&quot;true&quot; /&gt;
  </code></pre>
  <p>&lt;/system.serviceModel&gt;</p>
  <p>My silverlight client connect like this:</p>
  <pre><code> string endPointAddress2 = &quot;http://&quot;
            + App.Current.Host.Source.DnsSafeHost
            + &quot;:&quot;
            + App.Current.Host.Source.Port.ToString(CultureInfo.InvariantCulture)
            + &quot;/GUIPollingService.svc/mmpp&quot;;
   this.client = new GUIClientProxy.GUIPollingServiceClient(
          new PollingDuplexHttpBinding(PollingDuplexMode.MultipleMessagesPerPoll), 
          new EndpointAddress(endPointAddress2))
  </code></pre>
  <p>I got an eventhandler for innerchannel faulted:</p>
  <pre><code>client.InnerChannel.Faulted += new EventHandler(InnerChannel_Faulted);
  </code></pre>
  <p>...</p>
  <pre><code>void InnerChannel_Faulted(object sender, EventArgs e)
      {
          
          Dispatcher.BeginInvoke(() =&gt;
          { status.Text += &quot;Inner channel Faulted\n\n&quot;
          }
      } 
  </code></pre>
  <p>When using the above the Client.InnerChannelFaulted event happens exactly after <em>one</em> <code>serverPollTimeout</code>. (default 15seconds, verified with Fiddler)</p>
  <p>If I switch my client to connect like this:</p>
  <pre><code>string endPointAddress2 = &quot;http://&quot;
            + App.Current.Host.Source.DnsSafeHost
            + &quot;:&quot;
            + App.Current.Host.Source.Port.ToString(CultureInfo.InvariantCulture)
            + &quot;/GUIPollingService.svc&quot;;
   this.client = new GUIClientProxy.GUIPollingServiceClient(
          new PollingDuplexHttpBinding(), 
          new EndpointAddress(endPointAddress2))
  </code></pre>
  <p>aka single message per poll fiddler reveals that after each <code>serverPollTimeout</code> a new poll is started and the channel is <em>not</em> faulted.</p>
  <p>Any ideas what's wrong here?</p>
  <p>EDIT:</p>
  <p>I have read <a href="http://social.msdn.microsoft.com/Forums/en/wcf/thread/1e6aa407-4446-4d4a-8dac-5392250814b8" rel="nofollow noreferrer">http://social.msdn.microsoft.com/Forums/en/wcf/thread/1e6aa407-4446-4d4a-8dac-5392250814b8</a> and <a href="http://forums.silverlight.net/forums/p/200659/468206.aspx#468206" rel="nofollow noreferrer">http://forums.silverlight.net/forums/p/200659/468206.aspx#468206</a>
  and I agree that &quot;singleMessagePerPoll&quot; is not a decent workaround. As you can see on my versions I am running the most recent versions of SDK and developer runtime.</p>
  <p>EDIT2:</p>
  <p>I just found out, that if I use google chrome as browser instead of IE8 MultipleMessagesPerPoll works fine! To me this smells like a runtime vs. ie8 bug?</p>
  <p>EDIT3:</p>
  <p>An confirmed on the silverlight WS blog:
  <a href="https://docs.microsoft.com/en-us/archive/blogs/silverlightws/pollingduplex-using-multiplemessagesperpoll-issue-in-latest-sl4-gdrs" rel="nofollow noreferrer">Link</a></p>