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

时间:2014-10-14 15:01:31

标签: iis inheritance web-config

我们有一个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,但似乎没有选择将站点分组以限制此全局继承。 / p>

为了说明问题,我将在其内容后调用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是否具备此功能?

1 个答案:

答案 0 :(得分:0)

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相同的方式触发应用程序回收。这不应该是一个真正的问题,因为您只需要重新启动应用程序池,但最初可能会让人感到困惑。