【问题标题】:ASP.NET: external custom config file in a virtual directory - how to?ASP.NET:虚拟目录中的外部自定义配置文件 - 如何?
【发布时间】:2008-11-08 16:42:51
【问题描述】:

我知道至少有两种方法可以利用 web.config 文件:

现在,我的问题是这两种方法都仅适用于物理路径。但我需要解决一个位于虚拟目录中的配置文件。

我可以使用哪些其他方法将我的配置资源放在虚拟目录中?

注意:我想这样做,因为我的 Web 应用程序在同一台服务器上有多个实例(并且在许多服务器上)。为了保持部署简单和干净,我想为所有文件(aspx、ascx、图像、css、js 等)保留一个目录,并将 IIS 中的 Web 应用程序针对不同的客户(=域、https 等)指向这个单个目录。在每个 IIS Web 中,我都会有一个名为“custom”的虚拟目录,它指向每个 Web 的不同文件夹。

更新:我想指出这个虚拟目录“自定义”不适合包含继承的 web.config - web.config 仅对自定义文件夹有效不包含 aspx/ascx 文件。

【问题讨论】:

    标签: asp.net iis configuration web-config customization


    【解决方案1】:

    我有同样的情况,在阅读了你的帖子后,我意识到 asp.net 出于各种安全原因不允许你这样做。

    因此,我转向操作系统寻找与 Linux 软链接功能等效的功能,这反过来又将我引向了来自 sysinternals 的Junction utility。这可以创建一个目录,该目录实际上是该卷上的任何其他目录,asp.net 无法区分,因此很高兴加载实际上不在您网站子目录中的配置部分。为我工作:)

    【讨论】:

      【解决方案2】:

      可以将虚拟目录设置为应用程序,您只需在其中放置另一个 web.config。

      它将继承父配置的任何更改,您可以在其中添加自定义设置。

      【讨论】:

      • 不幸的是,这不是一个选项,因为应用程序不在“自定义”虚拟目录中。我将更新我的问题以明确这一点。
      【解决方案3】:

      我想做同样的事情,但没有成功,所以我决定做相反的事情,因为你知道 web.config 可以被继承,所以我将 IIS 指向包含客户端配置的文件夹(连接字符串,文件路径等)文件和网站文件,我将它们与 webconfig 的其余部分放在一个虚拟目录中(它加载 dll 和其他所需的应用程序文件) 所以基本上我可以使用网站文件来使用他们自己的数据库连接字符串和其他特定客户端设置的客户端和客户端。

      【讨论】:

        猜你喜欢
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多