Question

J'ai un boîtier WinSrv2k3 avec IIS6 hébergeant une série de sites, dont un site VB/.NET2.À l’intérieur, j’ai créé un répertoire virtuel et l’ai pointé vers le répertoire d’un site C#/.NET3.5 très simple.Je m'attendais à ce que le site me permette de visualiser les pages comme un site normal (il n'y a qu'un seul ASMX dans le répertoire virtuel) mais en accédant à la page depuis un navigateur, j'obtiens :

Server Error in '/TestVbSite' Application.

Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Could not load file or assembly 'IMSControls' or one of its dependencies. The system cannot find the file specified. (D:\sites\TestVbSite\web.config line 211)

Source Error: 


Line 209:    </httpHandlers>
Line 210:    <httpModules>
Line 211:      <add name="UrlRewritingModule" type="IMS.Controls.HttpModules.UrlRewritingModule, IMSControls" />
Line 212:    </httpModules>
Line 213:  </system.web>

Source File: D:\sites\TestVbSite\web.config    Line: 211

Le problème que je vois ici est que le web.config qui lance l'exception semble être le .config du site Web parent, et non le web.config dans le répertoire virtuel.Mais je ne comprends pas pourquoi.

Lors de l'accès aux pages normales du site Web (pas sous le répertoire virtuel), elles s'affichent et fonctionnent normalement, indiquant que la DLL IMSControls est incapable de se charger à partir du répertoire virtuel, mais encore une fois, je ne comprends pas pourquoi cela serait même impliqué dans le processus.

Était-ce utile?

La solution

Ok, eh bien, après quelques faux départs, une recherche approfondie sur Google m'a donné la bonne chose à rechercher :Héritage web.config.

Fondamentalement, pour empêcher un répertoire virtuel d'hériter des attributs du fichier web.config de son site parent (et donc de tout problème lié à celui-ci), le fichier web.config du site parent doit avoir son <system.web> élément enveloppé dans une nouvelle balise (pour moi) :

<location path="." inheritInChildApplications="false">
  <system.web>
    ...
  </system.web>
</location>

Liens utiles:

http://forums.asp.net/t/1164283.aspx

http://dotnetslackers.com/Security/re-55457_Stopping_ASP_NET_web_config_inheritance.aspx

http://msdn.microsoft.com/en-us/library/ms178685.aspx

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