Voici la configuration du projet.Authentification WCF et exception d'abandon de socket
J'ai un service WCF qui est hébergé sur une liaison net.tcp en mode tampon et ReliableSession activé.
La liaison est configurée pour utiliser la sécurité TransportWithMessageCredential. Le certificat est un certificat auto-signé que j'identifie en utilisant le Thumbprint. Le UserNameValidator est un validateur personnalisé qui, pour tester, n'échoue jamais (il n'échouait pas avant mais j'éliminais l'incertitude)
Le service et le client sont sur la même machine et ils ont tous deux accès au certificat.
Le problème:
Je reçois une douille exception Aborted lorsque vous essayez de consommer une méthode du service. Voici le code que j'utilise pour ouvrir une connexion au service. MonitorServiceCallbacks contient uniquement des méthodes vides pour répondre aux exigences de l'interface.
_instanceContext = new InstanceContext(new MonitorServiceCallbacks());
_serviceInterface = new MonitorCallbackServiceClient(_instanceContext);
_serviceInterface.ClientCredentials.UserName.UserName = Environment.MachineName;
_serviceInterface.ClientCredentials.UserName.Password = "myPassword";
_serviceInterface.Open();
Cela semble fonctionner très bien que la variable _serviceInterface.State est réglé sur State.Opened et le validateur personnalisée est appelée et retourne sans exception. Cependant, si j'essaie d'appeler une méthode à l'aide du proxy _serviceInterface, aucun code dans lequel je peux pénétrer n'est exécuté sur le service et le tracelog ne révèle aucune erreur sauf une exception SocketAborted qui se produit 1 minute après la réception de ce qui semble être le message pour la méthode.
Il n'y a pas d'InnerException.
J'ai essayé de google le problème mais les résultats ont tendance à dire "juste désactiver la sécurité et cela fonctionnera bien". Malheureusement, cela ne peut pas être fait.
Je suis extrêmement confus par ce problème et toute aide serait grandement appréciée.
Un grand merci,
Ehrys
Essayez d'activer WCF traçage –
Salut WCF Tracing est activée, mais comme je l'ai indiqué, ce n'est pas me donner des informations utiles. La première exception qu'il reçoit est l'exception SocketAborted. Le niveau de trace est défini sur Verbose, Suivi des activités, Propager l'activité – Ehrys