IIS web.config-多个网站的同一文件

IIS web.config-多个网站的同一文件,iis,inheritance,web-config,Iis,Inheritance,Web Config,我们的IIS 7.5(不使用ASP)包含以下站点: 站点A 站点B 站点C 站点D Site E E 站点B、站点C和站点D属于使用相同web.config的集中式应用程序。虽然IIS允许我们为所有的使用web.confg,并为每个站点使用继承的web.config,但似乎没有一个对站点进行分组的选项来限制这种全局继承 为了说明这个问题,我将在web.config的内容之后调用它们: 站点A使用/www/static/Site\u A/web.config中的web.config“公司网站

我们的IIS 7.5(不使用ASP)包含以下站点:

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

为了说明这个问题,我将在web.config的内容之后调用它们:

  • 站点A
    使用
    /www/static/Site\u A/web.config中的web.config“公司网站”
  • 站点B
    /www/cms/Site\u B/web.config中使用web.config“中央cms”
  • Site C
    /www/cms/Site\u C/web.config
  • Site D
    /www/cms/Site\u D/web.config
  • Site E E
    /www/boards/Site_E/web.config
如您所见,我们有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\u D/web.config
      (+继承)
  • /www/boards/site_E/web.config
    (无继承)
注意:所有web.config文件都声明了
的各种重写规则和指令


IIS 7.5能够做到这一点吗?web.config实际上应该能够做到这一点。将common 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。