2010-03-11 6 views
2

J'ai une application Silverlight 3 qui fait plusieurs demandes de longue durée à un service WCF. Pendant que ces appels sont en cours, tout autre appel WCF ultérieur est mis en file d'attente par silverlight 3 car il ne fera que deux demandes en même temps, ce qui rendra l'application difficile :(Comment annuler une requête WCF longue durée de Silverlight 3

Comment annuler les demandes de blocage de longue durée?

Répondre

-1

pas répondre directement à votre question, mais vous pouvez faire plus de deux requêtes http sortantes simultanées.

Si votre application fait beaucoup de requêtes sortantes http, vous serez étranglé par .Net. par défaut, .Net prend en charge uniquement deux requêtes HTTP sortantes simultanées Pour contourner cela, vous devez ajouter une section system.net à app.config

Voici un exemple d'extrait.

<system.net> 
    <defaultProxy> 
     <proxy usesystemdefault="false" bypassonlocal="true" /> 
     <bypasslist> 
      <add address = "[^.]+\.[^.]+\.ntwk\.msn\.net$" /> 
      <add address = "[^.]+\.phx\.gbl$" /> 
     </bypasslist> 
    </defaultProxy> 
    <connectionManagement> 
     <add address = "*" maxconnection = "12" /> 
    </connectionManagement> 
</system.net> 
+0

Est-ce que cela s'applique à Silverlight? – Kim

+0

Non, cela ne s'applique pas à SL. SL utilise par défaut la pile http du navigateur, qui est limitée à 6 sur IE, 6 sur chrome, et un autre nombre sur FF. Vous pouvez le changer pour utiliser la pile http du client, mais vous ne pouvez pas utiliser les cookies ou l'authentification des formulaires asp.net, et vous êtes toujours limité à 6, sur tous les navigateurs. – Kir

1

La seule façon dont je suis au courant est malheureusement appeler Abort() sur votre proxy, mais faites attention, vous devez créer une nouvelle instance de celui-ci par la suite (et réabonner aux événements terminés) car il ferme la connexion sous-jacente. Notez également que cela va tuer toutes les demandes asynchrones, vous devez donc l'appeler avant d'en appeler d'autres.

Questions connexes