这是 IIS7.5 和 .NET 4.0。这是场景:
localhost
在 path 处设置了一个网站C:\wwwroot\
;它只包含一个Default.html
文件。- AC# Web 应用程序
MyWebApp
存储在C:\MyWebApp\
(Web 根目录之外) MyWebApp
localhost
在上注册为 Web 应用程序/foo/bar/MyWebApp
MyWebApp
在其根目录中有一个带有连接字符串等的 web.config
当我访问时http://localhost/foo/bar/MyWebApp
,它会引发有关缺少连接字符串的异常。原来ConfigurationManager
它不包含来自web.config 的任何配置。MyWebApp
服务器会解析 web.config,因为如果我添加格式错误的 XML,它会引发异常。配置数据只是没有合并。
我发现localhost
必须包含一个物理目录C:\wwwroot\foo\bar\MyWebApp
才能C:\MyWebApp\Web.config
被包含在内!
我一直无法找到记录此行为的任何地方。在虚拟路径中注册的 Web 应用程序是否需要存在物理路径?