2008-11-18 7 views
-1

Je vais avoir quelques problèmes avec mon serveur WCF et les connexions clientes.connexion WCF Serveur/Client manipulation

Si j'utilise mon service et le client normalement, ce qui signifie que mon client se connecte et se déconnecte à travers des opérations normales (myclient.Close()) tout fonctionne très bien. Mais dans l'instance où j'ai le serveur en cours d'exécution et j'utilise le bouton "Stop" du studio visuel pour quitter mon application client, mes communications serveur et client semblent gâcher et le serveur ne nettoie pas correctement la connexion et les nouvelles connexions de mon client sont très instables et seulement certains appels de fonction fonctionnent jusqu'à ce qu'une fonction lèvera une exception de:

System.ServiceModel.CommunicationException: Une erreur s'est produite lors de la réception de la réponse HTTP à http://localhost:8080/Design_Time_Addresses/Service_Beta1/Service. Cela peut être dû à la liaison de point de terminaison de service n'utilisant pas le protocole HTTP. Cela peut également être dû à l'abandon d'un contexte de requête HTTP par le serveur (probablement en raison de l'arrêt du service). Voir les journaux du serveur pour plus de détails. ---> System.Net.WebException: La connexion sous-jacente a été fermée: Une erreur inattendue s'est produite sur une réception.

Et bien d'autres exceptions après cela, et je vais vous épargner la lecture de ceux-ci.

Si je arrêter le serveur et le client et redémarrer les deux, tous mes appels fonctionnent très bien jusqu'à ce que je fais le « Stop » drastique visual studio. Comment puis-je forcer le serveur à nettoyer les connexions incorrectement fermées? Je sais que dans la production le bouton "Stop" est parti et en théorie il ne devrait pas y avoir de problèmes, mais je ne veux pas avoir de problèmes de connexion au serveur suite à des plantages de clients ou de mauvaises déconnexions. Parce qu'inévitablement il y aura ces cas. Il est préférable de résoudre ce problème avant que plus de 20 clients tentent de se connecter et d'obtenir des exceptions.

Merci

Répondre

-2

Désolé pour prendre si longtemps pour poster une réponse. Mon problème est que je passais une datatable au client mais ne donnais pas de nom à la table lors de la création. Voir ci-dessous.

Dim dt As New DataTable() 'Passing just a blank un-named table to client gave errors. 
Dim dt As New DataTable("Table") 'Naming the table like so passes just fine.