2012-01-17 1 views
-2

Mon service Windows doit se connecter à différentes bases de données et en obtenir les données (multitenent). et chaque connexion est maintenue dans un fil séparé. Est-ce possible?Comment se connecter à différentes bases de données (sqlserver) à partir du service Windows en C#

Les informations de base de données sont disponibles dans un fichier XML.

Quelqu'un at-il une suggestion sur la façon dont cela peut être fait?

+0

C#, VB ou quoi? Besoin de plus d'informations. Aussi, qu'essayez-vous d'accomplir? Il y a beaucoup de façons d'aborder cet objectif vague. – alphadogg

+0

@alphadogg voir le titre c'est C# – rekire

Répondre

0

Les services Windows s'exécutent tout le temps et, comme les détails de la base de données sont contenus dans un fichier de configuration, vous pouvez lire la chaîne de connexion à partir de là. Lors de la structuration du code, un service n'est pas différent d'un programme de console, autre que les bits nécessaires pour que le ServiceManager prenne en charge. Donc structurez le code de telle sorte que la logique principale soit agnostique à la base de données, c'est-à-dire qu'elle ne se soucie pas de ce qui se passe au-delà de l'interface de la couche de données seulement.

Extraction des modèles de référentiel et d'usine. Ceux-ci seront utiles. Vous pouvez ensuite créer une instance concrète de la classe de base de données correcte au moment de l'exécution, en lisant ce que dit le fichier de configuration. Rappelez-vous que le service sera toujours exécuté (sauf s'il est configuré pour être déclenché manuellement) et qu'il sera capable d'échouer en silence s'il ne trouve pas le fichier de configuration.

Questions connexes