1 votes

Comment puis-je diviser les chaînes de connexion pour un site IIS, tout en maintenant un dossier d'application partagé ?

Actuellement, nous avons une configuration quelque chose comme ceci pour notre entreprise :

- Pool d'applications 1
 - Site 1
- Pool d'applications 2
 - Site 2
- Pool d'applications 3
 - Site 3

Ils correspondent à :

C:\inetpub\Site
C:\inetpub\Site2
C:\inetpub\Site3strings)
C:\inetpub\Site4

Et ainsi de suite. C'est agaçant, car notre code doit être maintenu dans plusieurs dossiers, et les gens oublient souvent de le faire; c'est un problème qui peut être résolu, mais je préférerais le résoudre dans la solution plutôt que dans le processus. Le code dans tous les dossiers est identique, seuls les fichiers web.config sont différents.

La raison pour laquelle nous avons nos sites divisés de cette manière malgré le code .NET identique est que nous avons besoin de chaînes de connexion différentes pour différents serveurs. De cette façon, le site qui héberge la liaison reçoit le trafic. C'est ainsi que nous gérons l'équilibrage de charge, ce n'est pas la meilleure façon, mais cela fait le travail.

Je préférerais AVOIR plusieurs sites (avec un ou plusieurs pools d'applications, peu importe) qui fonctionnent de la même manière, mais qui fonctionnent avec UN seul dossier de code partagé. Ce dont j'ai besoin est une solution pour gérer les chaînes de connexion en fonction du site dans IIS. Je n'ai pas eu beaucoup de chance en regardant les répertoires virtuels, qui semblaient simples mais je ne pense pas que ce soit possible, car il a besoin d'un web.config pour savoir même OÙ chercher les répertoires virtuels.

Je suis sûr de manquer quelque chose de simple ici, mais j'ai besoin d'un peu d'aide pour arriver à ceci :

C:\inetpub\SiteMaster (contient tout le code .NET)
C:\inetpub\SiteMaster\Site1_Config (doit seulement me dire les chaînes de connexion)
C:\inetpub\SiteMaster\Site2_Config (doit seulement me dire les chaînes de connexion)
C:\inetpub\SiteMaster\Site3_Config (doit seulement me dire les chaînes de connexion)

1voto

Todd Points 2342

Une option consiste à modifier votre code et à utiliser une méthode centralisée pour accéder aux chaînes de connexion. En fonction du site, vous renvoyez la chaîne correcte pour le site. Vous pourriez toujours avoir toutes les informations dans un seul web.config mais la chaîne de connexion principale ne serait pas codée en dur dans la base de données. Elle serait ajoutée ultérieurement.

En fonction de la structure de votre code, cela peut représenter beaucoup de travail.

Le moyen le plus simple serait de stocker les chaînes de connexion dans le web.config racine plutôt que dans le web.config de votre site.

Vous auriez un seul site avec un seul web.config mais sans chaîne de connexion à l'intérieur.

Elles se trouvent à :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config

ou à la version du framework que votre pool d'applications utilise.

Vous pouvez utiliser le nœud d'emplacement pour spécifier différentes chaînes de connexion pour les différents sites :

Vous pouvez faire de même pour d'autres paramètres IIS et Dot.NET.

L'inconvénient peut être que vous devez être un administrateur pour modifier ces paramètres et que si vous les modifiez, tous les pools d'applications sur le serveur peuvent être redémarrés.

0 votes

Merci pour l'idée. Le problème que je vois ici est que nous équilibrons manuellement la charge entre les serveurs en ajustant les liaisons vers différents domaines sur chaque site. Si je continuais à utiliser le web.config à l'intérieur du dossier du site réel, pourrais-je peut-être alors créer un alias vers les chaînes de connexion dans un fichier distant ? Je pourrais voir que cela fonctionne de cette manière peut-être, tant que je peux les spécifier sur une base comme vous l'avez suggéré ici. Je vais essayer, merci.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X