2016-05-26 1 views
-1

J'ai reçu une application de service Windows qui charge dynamiquement d'autres modules dans un autre nouveau domaine d'application. Le problème est qu'ils utilisent tous les mêmes connexions de base de données statiques. Je peux disposer les connexions statiques dans l'AppDomain principal quand j'arrête le service. Mais comment puis-je disposer immédiatement les autres connexions statiques dans d'autres AppDomain. Le problème est que les autres connexions existent toujours, l'application de service s'exécute toujours dans le Gestionnaire des tâches même si je l'arrête complètement.Comment disposer des connexions statiques dans un autre AppDomain

Merci

Répondre

1

Le problème est qu'ils utilisent tous les mêmes connexions de base de données statiques.

Oui, c'est définitivement un problème. Ne fais pas ça. Les connexions sont mises en commun par .NET et ne sont pas chères à créer. Le modèle approprié consiste donc à les créer lorsque vous en avez besoin, à les utiliser et à les éliminer lorsque vous avez terminé. Un moyen efficace de le faire est avec using instructions.

En général, tout ce qui crée un objet jetable est responsable de son élimination. Puisque vos objets jetables sont statiques, il n'y a aucun moyen de savoir ce qui est responsable de leur élimination. Vous devez donc avoir une logique pour voir si elle a déjà été éliminée, si elle est ouverte, si elle est nulle, etc. Il est beaucoup plus simple de garder toute la logique de création et de destruction au même endroit.

+0

Salut Stanley, Merci beaucoup pour votre réponse. Le scénario est que j'utilise rabbitMq pour envoyer comme des millions de messages. Devrais-je créer la connexion et la disposer pour chaque message? On dirait que j'ai besoin de créer un pool de connexions comme .net? – Mango