Question
Je suis nouveau sur Wcf et j'ai essayé de créer mes premiers services Wcf. Classe ajoutée (nouvel assemblage) qui contient du code non managé et manipule des fichiers. Le comportement du service est défini comme suit
InstanceContextMode = InstanceContextMode.Single
ConcurrencyMode = ConcurrencyMode.Single
Lorsque le service est utilisé en mode simple, la nouvelle classe de manipulation de fichier est créée. J'ai remarqué que si la classe de manipulation de fichier échouait (fuite de mémoire ou erreur critique), toutes les nouvelles connexions à l'hôte affectées par les connexions précédentes.
Est-il possible de créer des instances Wcf totalement isolées les unes des autres et complètement détruites après la fermeture de la connexion client?
salutations Tomas
La solution
Oui, c'est le mode préféré. Il s'appelle "par appel":
InstanceContextMode = InstanceContextMode.PerCall
ConcurrencyMode = ConcurrencyMode.Single
Ainsi, chaque demande entrant dans votre service WCF obtiendra sa propre instance distincte et isolée de la classe de service, et cette instance traitera la demande, puis sera supprimée.
Cela devrait vous permettre d'optimiser les performances et d'isoler les requêtes les unes des autres.