2010-05-25 3 views
0

En utilisant Fiddler, nous voyons 3 requêtes HTTP (et les réponses correspondant) pour chaque appel lorsque:WCF méthode ReliableMessaging appelé deux fois

  • WS-ReliableMessaging est activé, et,
  • la méthode renvoie un grand quantité de données (17MB)

la première requête HTTP est un message SOAP avec l'action "CreateSequence" (presumable pour établir la session fiable). Les deuxième et troisième requêtes HTTP sont des messages SOAP identiques invoquant notre méthode webservice. Pourquoi y a-t-il deux messages identiques?

Voici notre config:

<system.serviceModel> 
    <client> 
     <endpoint address="http://server/vdir/AccountingService.svc" 
       binding="wsHttpBinding" 
       bindingConfiguration="customWsHttpBinding" 
       behaviorConfiguration="LargeServiceBehavior" 
       contract="MyProject.Accounting.IAccountingService" 
       name="BasicHttpBinding_IAccountingService" /> 
    </client> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="customWsHttpBinding" maxReceivedMessageSize="90000000"> 
      <reliableSession enabled="true"/> 
      <security mode="None" /> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="LargeServiceBehavior"> 
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    </system.serviceModel> 

Merci,

Brian

+0

Je pense que ReliableMessaging peut être réessayer lorsque l'appel prend trop de temps. Dans certains cas, je vois 3 messages identiques, chacun démarré à 2 secondes d'intervalle. –

Répondre

0

Cela a été causé par ReliableMessaging rejuger. Le message a pris plus de 2 secondes pour traiter et transmettre.

Questions connexes