Comment empêcher que le fichier web.config du site IIS par défaut soit hérité par les répertoires virtuels ?

StackOverflow https://stackoverflow.com/questions/37759

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 ?

Était-ce utile?

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 ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top