J'ai un service WCF que j'appelle de manière asynchrone.La liaison WCF personnalisée supprime l'erreur
Si j'appelle une méthode qui lance une exception .Net normale (c'est-à-dire, pas une exception FaultException) à l'aide de wsHttpBinding, mon canal WCF est laissé dans un état défectueux - c'est le comportement attendu.
Cependant, si je l'appelle la même méthode en utilisant une liaison personnalisée:
<customBinding>
<binding name="httpCompressed" sendTimeout="00:10:00" receiveTimeout="00:10:00">
<httpTransport maxBufferSize="2147483647"
maxBufferPoolSize="524288"
maxReceivedMessageSize="2147483647" />
</binding>
</customBinding>
Puis, alors que je reçois une exception en arrière, le canal est laissé dans un état ouvert. Ce n'est pas un comportement attendu - du moins pas autant que je puisse le dire.
Cela indique-t-il un bogue dans le customBinding pour WCF? Est-ce réellement un comportement attendu (si oui, une documentation de pointeur serait excellente).
Merci d'avance pour toute assistance.
David Mullin IMA Technologies
Hmm. Compte tenu de cela, je me attends à ce que le changement de l'instanciation explicitement mon service comme suit: [ServiceBehavior (InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false)] ferait en sorte que, si je wsHttpBinding, je ne finirais plus avec un canal fautif. Ce n'est pas le cas - j'ai essayé toutes les différentes permutations d'instanciation/concurrence, et j'ai toujours le comportement wsHttpBinding, et pas customBinding. –
Ce n'est probablement pas clair d'après ma réponse, mais ce qui compte ici, c'est une session. Même si vous utilisez le mode instance unique dans le service exposé sur votre liaison personnalisée, vous n'avez toujours pas de session. –