【问题标题】:IIS web.config - same file for multiple websitesIIS web.config - 多个网站的相同文件
【发布时间】:2014-10-14 15:01:30
【问题描述】:

我们有一个带有以下站点的 IIS 7.5(不使用 ASP):

  • Site A
  • Site B
  • Site C
  • Site D
  • Site E

Site BSite CSite D 属于使用相同 web.config 的集中式应用程序。虽然 IIS 允许我们为所有它们使用 web.confg,并为每个站点使用继承的 web.config,但似乎没有对站点进行分组以限制这种全局继承的选项。

为了说明问题,我将在其内容之后调用 web.config:

  • Site A/www/static/site_A/web.config 中使用 web.config "company-website"
  • Site B/www/cms/site_B/web.config 中使用 web.config "central-cms"
  • Site C/www/cms/site_C/web.config 中使用 web.config "central-cms"
  • Site D/www/cms/site_D/web.config 中使用 web.config "central-cms"
  • Site E/www/boards/site_E/web.config 中使用 web.config "community-board"

如您所见,我们有 5 个物理 web.config 文件,尽管其中 3 个(B、C、D)包含相同的内容。

我们希望站点 B、C 和 D 共享一个 web.config 文件,但仍希望站点 A 和 E 使用自己的 web.config而不必否定继承

可能的结构:

  • /www/static/site_A/web.config(无继承)
  • /www/cms/web.config(基础继承)
    • /www/cms/site_B/web.config(+继承)
    • /www/cms/site_C/web.config(+继承)
    • /www/cms/site_D/web.config(+ 继承)
  • /www/boards/site_E/web.config(无继承)

注意:所有 web.config 文件都声明了<system.webServer> 的各种重写规则和指令。

IIS 7.5 能做到这一点吗?

【问题讨论】:

    标签: iis inheritance web-config


    【解决方案1】:

    web.config 实际上应该能够做到这一点。将通用 web.config 文件放入每个站点都具有读取权限的文件夹中。然后修改各个web.config文件调用通用文件:

    <appSettings file="/path/to/some/common/web.config">
    

    然后这个通用文件可以用于任何需要它的文件,而对于不需要它的文件则忽略。您甚至可以将其重命名为 common.config 或其他名称,这样它就不会被继承。所以这会起作用:

    <appSettings file="/www/common.config">
    

    所有子目录都应该对其具有读取权限,并且由于它不是 web.config,因此不应与派生的任何应用程序设置混淆。

    注意:以这种方式包含配置文件时,对包含文件的更改不会像直接更改 web.config 那样触发应用程序回收。这应该不是真正的问题,因为您只需重新启动应用程序池,但一开始可能会令人困惑。

    【讨论】:

    • 对不起,我没有说清楚我们需要访问web.config中的system.webServer。我们基本上只在通用配置中进行了重写。在我们的例子中,appSettings 似乎根本没有被执行。注意:我们没有使用 ASP。
    猜你喜欢
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多