共享不同Web应用程序的相同配置设置

时间:2013-03-28 17:29:00

标签: c# asp.net asp.net-mvc web-applications configuration

这是我今天在采访中提出的一个问题。

  

如何为不同的网络共享相同的配置设置   在同一个IIS下运行的应用程序。

我回答,

  

可以通过将其移动到CLR版本下的根级web.config / machine.config文件来完成,即Windows / Microsoft VS .Net / Framework / Version / Config / filename

     

将xml文件或某个文件放在服务器的磁盘上,并使用System.IO进行读取。

     

旧的方式,放一些.ini文件并阅读

最后他们说错了!想知道可能的方法是什么?

2 个答案:

答案 0 :(得分:3)

一个选项:您可以在任何配置元素上使用configSource属性,让它从外部文件中提取配置。

<强> ConnectionStrings.config

<connectionString>
    ...
</connectionStrings>

<强>的Web.config

<connectionStrings configSource="ConnectionStrings.config" />

然后,您可以在项目之间链接ConnectionStrings.config,然后就可以了。

答案 1 :(得分:1)

你不需要做任何事情。默认行为是子文件夹中的所有Web应用程序从根文件夹继承配置。你只需覆盖你需要的那个。

示例:

  • 根文件夹:C:\inetpub\wwwroot
  • web app1根文件夹:C:\inetpub\wwwroot\webapp1
  • web app2根文件夹:C:\inetpub\wwwroot\webapp2

现在,如果

  • root config位于:C:\inetpub\wwwroot\web.config
  • web app1 config at:C:\inetpub\wwwroot\webapp1\web.config
  • web app2 config at:C:\inetpub\wwwroot\webapp2\web.config

app1app2都将从根web.config继承其配置,除非在他们自己的web.config中明确覆盖它们。