我知道至少有两种方法可以利用 web.config 文件:
- 使用 .NET 2.0 中引入的
configSource
属性 - here is a good blog entry关于它。 - appSettings 标记的
file
属性,可让您指向具有相对路径的外部文件。在 MSDN documentation on the appSettings element 中描述.
现在,我的问题是这两种方法都仅适用于物理路径。但我需要处理一个位于虚拟目录中的配置文件。
我还可以使用哪种其他方法将我的配置资源放在虚拟目录中?
注意:我想这样做,因为我的 Web 应用程序的多个实例位于同一台服务器(以及许多服务器上)。为了保持部署简单和干净,我想为所有文件(aspx、ascx、图像、css、js 等)保留一个目录,并将 IIS 中的 Web 应用程序指向不同客户(=域、https 等)到此单一目录。在每个 IIS 网站中,我都会有一个名为“自定义”的虚拟目录,它指向每个网站的不同文件夹。
更新:我想指出这个虚拟目录“自定义”不适合包含继承的 web.config - web.config 只对自定义文件夹有效不包含 aspx/ascx 文件。
最佳答案
我有同样的情况,在阅读您的帖子后,我意识到 asp.net 出于各种安全原因不允许您这样做。
因此我转向操作系统寻找与 Linux 软链接(soft link)功能等效的功能,这反过来又将我带到了 Junction utility。来自系统内部。这可以创建一个目录,该目录实际上是该卷上的任何其他目录,而 asp.net 无法区分它们,因此很高兴加载实际上不在您网站的子目录中的配置部分。对我有用:)
关于ASP.NET:虚拟目录中的外部自定义配置文件 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274923/