-
Web Service C# Embedded
Bonjour
J'ai un web service développé en C# et qui est embarqué dans un service Windows.
Au bout d'un certains temps le web service ne répond plus mais le service Windows tourne toujours et les autres fonctionnalités déployées dans le programme porté par le service Windows répondent normalement.
Après quelques recherches j'ai pu lire que plusieurs personnes avaient le même problème que moi et ils ont arrangé leur problème en ajoutant des balises de service throttling dans le fichier de configuration.
J'ai essayé cette méthode en ajoutant dans mon fichier de configuration les balises
- MaxConcurrentCalls
- MaxConcurrentSessions
- MaxConcurrentInstances
Mais au bout de 15 jours le problème s'est reproduit. De plus en faisant un netstat sur le port sur lequel est interrogé le web service je vois croitre le nombre ports ouverts et je ne comprends pas pourquoi
Est-ce que quelqu'un a déjà été confrontée à ce genre de problème ? et si oui quelles sont les pistes d’investigations que vous pouvez me suggérer ?
P.S. OS: Windows Server 2008 R2, .NET 3.5
Merci
-
Bonjour
Les recherches ont avancées et nous avons constaté pour ce problème que nous avions un grand nombre de socket qui restent avec un état CLOSE_WAIT côté serveur.
L'application ne répond car le nombre de sockets avec l'état CLOSE_WAIT est supérieur au nombre MaxConcurrentInstances définit en configuration
J'ai deux questions:
- est-il possible d'avoir un accès à la socket qui permet l'échange entre le client et le service host de manière applicative et de contrôler cette socket ?
- est-ce que le serveur doit fermer la socket après chaque requête en provenance du client ? et si oui comment ?
Petite précision le service host n'utilise pas du nettcpbinding mais du basichttpbinding.
Merci d'avance