我们有一个IIS 7.5(不使用ASP)以及以下站点:
Site A
Site B
Site C
Site D
Site E
Site B
,Site C
和Site D
属于使用相同web.config
的集中式应用程序。虽然IIS允许我们为每个站点的所有使用web.confg加上继承的web.config,但似乎没有选择将站点分组以限制此全局继承。 / p>
为了说明问题,我将在其内容后调用web.config:
Site A
在/www/static/site_A/web.config
Site B
使用/www/cms/site_B/web.config
Site C
使用/www/cms/site_C/web.config
Site D
使用/www/cms/site_D/web.config
Site 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_D/web.config
(+继承)/www/boards/site_E/web.config
(没有继承) 注意:所有web.config文件都为<system.webServer>
声明了各种重写规则和指令。
答案 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相同的方式触发应用程序回收。这不应该是一个真正的问题,因为您只需要重新启动应用程序池,但最初可能会让人感到困惑。