Comment empêcher que le fichier web.config du site IIS par défaut soit hérité par les répertoires virtuels ?
-
09-06-2019 - |
Question
J'ai le code suivant dans un fichier web.config du site IIS par défaut.
<httpModules>
<add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
</httpModules>
Ensuite, lorsque je configure et navigue vers un répertoire virtuel, j'obtiens cette erreur
Impossible de charger le fichier ou l'assembly « Graphiques » ou l'une de ses dépendances.Le système ne peut pas trouver le fichier spécifié.
Le répertoire virtuel hérite des modules du web.config par défaut.
Comment arrêter cet héritage ?
La solution
J'ai trouvé la réponse.Enveloppez la section HttpModule dans des balises d'emplacement et définissez l'attributheritInChildApplications sur false.
<location path="." inheritInChildApplications="false">
<system.web>
<httpModules>
<add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
</httpModules>
</system.web>
</location>
Désormais, aucun répertoire virtuel n’héritera des paramètres de cette section d’emplacement.
@GateKiller Ce n'est pas un autre site Web, c'est un répertoire virtuel donc l'héritage se produit.
@petrich J'ai eu des résultats aléatoires en utilisant <remove />
.Je dois me rappeler de l'ajouter à chaque répertoire virtuel, ce qui est pénible.
Autres conseils
Ajoutez ce qui suit au fichier web.config du répertoire virtuel :
<httpModules>
<remove name="ChartStreamHandler"/>
</httpModules>
Selon Microsoft, les autres sites Web n'héritent pas des paramètres du site Web par défaut.Voulez-vous dire que vous modifiez le web.config par défaut qui se trouve dans le même dossier que machine.config ?