IIS6 Virtual Directory non accessibile come app
-
18-09-2020 - |
Domanda
Ho una scatola WinSRV2K3 con IIS6 che ospita una serie di siti, uno dei quali è un sito VB / .NET2.All'interno di questo ho creato una directory virtuale e ha puntatolo in una directory del sito C # /. Net3.5.Mi aspettavo che il sito mi aspettassi di consentire di visualizzare le pagine come un sito normale (c'è solo una ASMX nella directory virtuale) ma quando accedi alla pagina da un browser, ottengo:
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
.
Il problema che vedo lì, è che il web.config che lancia l'eccezione sembra essere il sito web del genitore .config, non il web.config nella directory virtuale.Ma non capisco perché.
Quando si accede alle pagine regolari all'interno del sito Web (non sotto la directory virtuale) che rendono ed eseguono come normali, indicando che la DLL IMSControls non è in grado di caricare dalla directory virtuale, ma di nuovo, non capisco perché questoessere coinvolto nel processo.
Soluzione
Ok, beh, dopo alcune false inizia, pesante googling mi ha dato la cosa corretta da cercare: web.config ereditarietà.
Fondamentalmente, per interrompere una directory virtuale di ereditari gli attributi del Web.config (e quindi eventuali problemi) del sito Web.Config ha bisogno di avere il suo elemento <system.web>
avvolto in un nuovo tag (a me):
<location path="." inheritInChildApplications="false">
<system.web>
...
</system.web>
</location>
.
Collegamenti utili:
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.as178685.aspx