ASP.NET:虚拟目录中的外部自定义配置文件 - 如何?
我知道有至少两种方法来充分利用web.config文件:使用其中引入.NET 2.0中的configSource
属性ASP.NET:虚拟目录中的外部自定义配置文件 - 如何?
- - here is a good blog entry了。
- appSettings标签的
file
属性,它允许您使用相对路径指向外部文件。描述在MSDN documentation on the appSettings element。
现在,我的问题是,这两种方法工作得很好只对物理路径。但我需要解决一个虚拟目录中的配置文件。
我可以使用其他方法将我的配置资源置于虚拟目录中吗?
注意:我想这样做,因为我的Web应用程序在同一台服务器(以及许多服务器上)上有多个实例。为了保持部署的简单和干净,我希望为所有文件(aspx,ascx,images,css,js等)保留一个目录,并将IIS中的web应用程序指向不同的客户(=域,https等)单一目录。在每个IIS网络中,我都会有一个名为“custom”的虚拟目录,它指向每个Web的不同文件夹。
更新:我想指出的是,这个虚拟目录“自定义”不适合包含继承的web.config - 这web.config文件只适用于不自定义文件夹有效包含aspx/ascx文件。
我有相同的情况,读完你后,我意识到,asp.net不会让你这样做,出于各种安全原因。
因此,我转向操作系统找到一个相当于Linux软链接功能,这反过来导致我从sysinternals Junction utility。这可以创建一个目录,该目录实际上是该卷上的任何其他目录,而asp.net无法区分这些差异,因此快速加载不在您网站的子目录中的配置部分。适用于我:)
虚拟目录可以设置为应用程序,您可以在其中放置另一个web.config。
它将继承父配置的任何更改,并且您可以在其中添加自定义设置。
我正在寻找做同样的事情,但它没有工作,所以我决定做相反的事,因为你知道web.config可以继承,所以我指出IIS到一个文件夹包含客户端配置(连接字符串,文件路径等)文件和网站文件我把它们放在一个虚拟目录与其余的webconfig(它加载DLL和其他应用程序文件需要) 所以基本上我可以使用网站文件多客户端和客户端用自己的数据库连接字符串和其他特定的客户端设置。
不幸的是,这不是一个选项,因为应用程序不在“自定义”虚拟目录中。我会更新我的问题以清楚表明这一点。 – splattne 2008-11-08 17:16:59