2009-07-17 4 views
0

J'ai une application Web que je souhaite utiliser pour plusieurs domaines d'activité. Je ne souhaite pas avoir plusieurs instances du code de l'application Web sur le serveur Web.Chargement d'un fichier web.config différent à l'exécution pour ASP.NET

Ainsi, à titre d'exemple: // J'ai MyWebSite/Virtual_Directory_1 fait référence à c: \ Inetpub \ wwwroot \ MyWebApp pointant vers Database_A Ce que je veux est d'installer un autre répertoire virtuel comme suit: // MyWebSite/Virtual_Directory_2 fait référence à c: \ Inetpub \ wwwroot \ MyWebApp pointant sur Database_B. Je pensais faire cela en ayant des fichiers web.config séparés, mais je ne suis pas sûr de savoir comment le faire.

Toute aide sera appréciée.

Merci Parag

Répondre

0

Vous pouvez diviser votre configuration à plusieurs fichiers et vous pouvez également créer 1 ou plusieurs répertoires virtuels dans IIS pour un seul répertoire physique. Cependant, cela signifie que vous aurez 2 instance de votre application web disponible sur votre conteneur Web, mais les deux utilisant les mêmes fichiers de configuration, peu importe qu'ils soient répartis sur plusieurs fichiers.

Vous pouvez également avoir un fichier web.config pour chaque sous-répertoire de votre application Web et chaque fichier peut remplacer ses paramètres parent.config (tout n'est pas remplaçable).

Pour créer un répertoire virtuel dans la boîte de dialogue d'exécution, tapez inetmgr ... Le gestionnaire des services Internet s'ouvrira. Faites un clic droit sur le site web par défaut si sur le système d'exploitation client et sélectionnez Nouveau puis répertoire virtuel. L'assistant de configuration du répertoire virtuel apparaît. Suivez les étapes simples qu'il a à offrir et vous finissez par créer 2 répertoires virtuels pour un répertoire source unique. Si vous voulez juste avoir différentes fonctionnalités (c.-à-d. Pointer vers une base de données différente) pour chaque instance d'application Web, considérez les sections de configuration web.config à la place .. et sauvegardez les chaînes de connexion à une clé dans les paramètres de l'application. chaîne de connexion à la base de données en considérant quelle ressource est accédée.

Jetez un oeil à l'article sur this location:

0

Une façon de le faire, je suppose serait d'avoir un fichier web.config partagé et ensuite les chaînes de connexion multiples dans le fichier de configuration correspondant au nom du répertoire virtuel .

<connectionStrings> 
    <add name="VirtualDir1" connectionString="data source=BLAHBLAH" /> 
    <add name="VirtualDir2" connectionString="data source=BLAHBLAH" /> 
</connectionStrings> 

Lors de l'obtention de la chaîne de connexion de référence simplement comme:

ConfigurationManager.ConnectionStrings(Request.ApplicationPath).ConnectionString 

Bien que, pour être honnête, je pense un peu de temps passé avec des projets de construction et ayant de multiples copies du code avec leurs propres fichiers de configuration sauveront vous souffrez à long terme.

Questions connexes