Question

Bonjour,

Je suis en cours d'exécution dans un curieux problème avec WCF et IntelliTrace. J'ai une application que je teste en utilisant un point de terminaison WCF hébergé localement (le serveur de développement intégré dans VS2010) en utilisant le basicHttpBinding. L'application a fonctionné normalement. Aucune exception ne font leur chemin à l'application et tous les appels WCF sont des données de retour

Sur une alouette, j'ai décidé de jeter un oeil à la sortie IntelliTrace et a remarqué que mon premier appel à WCF lance deux exceptiosn:

Exception:Thrown: "No connection could be made because the target machine actively refused it" (System.Net.Sockets.SocketException)
A System.Net.Sockets.SocketException was thrown: "No connection could be made because the target machine actively refused it"
Exception:Caught: "No connection could be made because the target machine actively refused it" (System.Net.Sockets.SocketException)
A System.Net.Sockets.SocketException was caught: "No connection could be made because the target machine actively refused it"

J'ai réduit l'application à un cas trivial d'utilisation:

    ServiceClient client = new ServiceClient();
    string[] output = client.LegacyCheck("username");
    Console.WriteLine(output[0]);
    Console.WriteLine(client.GetData(65));

Et je reçois le même comportement. Le deuxième appel n'a pas exception associée.

Je suis très perplexe. Si la connexion est refusée, alors pourquoi l'exception ne font AMENAGE à l'application? Et pourquoi serait-il le succès après 2 essais ont échoué?

Toute aide est appréciée!

Était-ce utile?

La solution

Pour ce que ça vaut, je l'ai remarqué ce comportement trop avec mes applications IronPython / WPF. Je l'ai finalement réalisé que IntelliTrace est simplement de vous montrer toutes les exceptions qui sont soulevées et capturés pendant le fonctionnement normal, même si sa part d'un BCL ou autre bibliothèque.

Bien sûr, il vous suffit de vous soucier des exceptions non gérées (après casser votre exécution, vous verrez généralement ceux IntelliTrace comme une longue chaîne de Thrown: Caught: Thrown: Caught: .... tout le chemin jusqu'à Thrown: qui sera la dernière ligne que l'exception n'a pas été pris.

Qu'est-ce que je suis prêt à parier que le couple a de code de WCF try des choses d'abord, attrape les SocketExceptions, et se poursuit ensuite son chemin joyeux. Vous verriez jamais, mais pour IntelliTrace:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top