设置IIS以使用非标准.config文件

时间:2015-08-26 06:01:40

标签: asp.net iis configuration web-config

有没有办法告诉IIS从web.config以外的其他文件中读取配置?

为什么有人会这样做?

便利。使用静态资源(如.aspx,.js或MVC视图文件)时,通常在浏览器中点击“刷新”以查看该更改的效果。

另外,我们的场景更具体的是我们在网站的不同版本中重用了一些代码库,它们的差异在各自的.config文件中定义,并且每个站点都在我们的本地运行发展客户。

将更改发送到与您实际工作的位置不同的位置有点耗时:发布操作将正确编译并将整个Web应用程序复制到目标位置,通常手动复制单独更改的文件。 .. fiddly。

所以我想要的是:

我在c:\ workbench \ FlavMaster3000中处理我的项目。在这个文件夹中,我创建了各种各样的web.config文件:

  • web.apple.config
  • web.banana.config
  • web.cherry.config

我在IIS中创建代表每种风味的网站,并将其目录设置为与上面相同。

我希望IIS能够从相应的.config风格中读取每个站点的配置。

这一切都可能,或者我是一个无望的梦想的梦想家?

-S

1 个答案:

答案 0 :(得分:0)

您可以将特定配置放在外部文件中,并将这些文件链接到web.config文件中,如下所示。然而,缺点是web.config被监视其中的任何更改并在您保存web.config时立即应用,这些外部文件将不会被监视,您将需要手动重新启动应用程序池。

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
   <appSettings configSource="Myconfigs/myappSettings.config"/>
   <connectionStrings configSource="Myconfigs/myconnections.config"/>   
   <system.web>
       <pages configSource="Myconfigs/mypages.config"/>
       <profile configSource="Myconfigs/myprofile.config"/>
       <httpHandlers configSource="Myconfigs/myhttpHandlers.config"/>
       <httpModules configSource="Myconfigs/myhttpModules.config"/>
   </system.web>
</configuration>