我有一个WinSrv2k3框,IIS6托管了一系列网站,其中一个是VB / .NET2网站。在这里我创建了一个虚拟目录,并将其指向一个非常简单的C#/。NET3.5站点的目录。我希望该网站允许我将这些页面视为普通网站(虚拟目录中只有一个ASMX)但是当从浏览器访问该页面时,我得到:
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
我在那里看到的问题是,抛出异常的web.config似乎是父网站的.config,而不是虚拟目录中的web.config。但我不明白为什么。
当访问网站内的常规页面(不在虚拟目录下)时,它们会正常呈现并执行,表明IMSControls DLL无法从虚拟目录加载,但同样,我不明白为什么会这样参与这个过程。
答案 0 :(得分:0)
好的,好吧,经过一些错误的开始,沉重的谷歌搜索给了我正确的寻找:web.config继承。
基本上,要阻止虚拟目录继承其父网站的web.config的属性(因此来自它的任何问题),父网站的web.config需要将其<system.web>
元素包装在新的中(标签:
<location path="." inheritInChildApplications="false">
<system.web>
...
</system.web>
</location>
有用的链接:
http://forums.asp.net/t/1164283.aspx
http://dotnetslackers.com/Security/re-55457_Stopping_ASP_NET_web_config_inheritance.aspx