Je développe un module HTTP géré qui interceptera les requêtes et les réponses d'IIS 7. Les messages interceptés seront modifiés en fonction d'un ensemble de règles métier par un filtre personnalisé. Les règles métier seront stockées dans un fichier de configuration.Comment déployer un module HTTP géré Site Wide?
Les messages doivent être interceptés sur le site Web. Cela inclut toutes les applications ou répertoires virtuels qui existent en tant qu'enfants du site Web. Ma première tentative à ceci consistait à installer l'assembly de module HTTP dans le répertoire bin du site Web souhaité (par exemple, C: \ inetpub \ wwwroot \ bin pour le site Web par défaut).
Une fois installé, je modifie l'élément <compilation>
du fichier web.config du site Web pour faire référence à l'ensemble, comme ceci:
<compilation debug="false">
<assemblies>
<add assembly="Company.Product.Module, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx" />
</assemblies>
</compilation>
J'ai aussi modifié l'élément <modules>
du fichier web.config du site Web.
Ceci fonctionne bien pour la plupart du contenu sous le site Web. Cependant, s'il y a une application configurée dans le site Web (par exemple,/wwwroot/MyApplication) Je reçois l'erreur suivante lors de la navigation à toute ressource dans cette application web:
Impossible de charger le fichier ou l'assemblage Société. Product.Module, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = xxxxxxxxxxxxxxxx 'ou l'une de ses dépendances. Le système ne trouve pas le fichier spécifié.
Il y a deux façons que je connais pour contourner ce:
Option 1:
Copiez le montage du module HTTP et tous ensembles dépendants au répertoire bin de chaque application. Je crois que je devrais également dupliquer les informations de configuration du répertoire parent. Cela peut devenir un cauchemar de la gestion que de plus en plus d'applications sont ajoutées au site Web.
Option 2:
Installer l'ensemble de modules HTTP et tous les assemblages à charge dans le GAC. Cela semble fonctionner assez bien et évite beaucoup de frais de gestion, cependant, où vivent les informations de configuration? Si dans le fichier web.config du site Web ces informations sont-elles héritées dans toutes les applications enfants?
Quelle est la méthode recommandée pour le déploiement d'un site de module HTTP géré? Comment la configuration doit-elle être gérée de sorte que toute la configuration soit dans un emplacement central?
Par sur la bonne voie voulez-vous dire l'installation au sein de l'AG C, ou l'installation dans plusieurs répertoires bin? –
installation au sein du GAC –
Je ne suis pas sûr si je serai autorisé à apporter des modifications au fichier machine.config. De plus, j'aimerais pouvoir supporter différentes configurations pour différents sites Web. Par conséquent, je pense que l'emplacement idéal pour cette information est dans web.config. Je devrai vérifier si mes paramètres de configuration sont correctement hérités pour toutes les applications d'un site. –