单个网站目录/多个IIS网站(多个web.config文件)

时间:2015-07-20 14:57:27

标签: asp.net iis

我继承了一些非常古老的asp代码。我需要解决一个设计问题,如下所述。

  

我有3个客户...... Foo,Bar和Baz。

我有一个名为...的文件夹

  

C:\网站已\ Site.v15.07

我在IIS中有3个网站被定义为......

  

Website.Foo

     

Website.Bar

     

Website.Baz

他们都指向15.07目录。

另外还有3个名为...的文件夹

  

C:\ WebConfigurations \富

     

C:\ WebConfigurations \酒吧

     

C:\ WebConfigurations \巴兹

...所有这些都包含3个站点中每个站点的客户端特定文件。上传的图片等。

3个客户中的每一个都拥有自己的网站所在的数据库。

我需要为3个站点中的每个站点设置(理想情况下,使用web.config)连接字符串。

如果我将它放在网站目录根目录中的web.config中,它们将共享相同的设置。

有没有办法在IIS的网站上添加settings / web.config"级别,以便每个网站可以设置不同?

1 个答案:

答案 0 :(得分:1)

仅将Web.config中的常用配置放在应用程序文件夹中。

首次加载应用程序时,以编程方式从相应的文件夹加载特定于客户端的配置文件,并以编程方式将信息合并到内存中的配置信息中。

以编程方式编辑内存中配置信息的示例:

Change a web.config programmatically with C# (.NET)

var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";

在您的情况下,您希望对WebConfigurationManager.OpenWebConfiguration进行两次调用,一次打开应用程序配置,一次加载客户端配置。然后将数据从客户端配置复制到内存中的应用程序配置(不要根据引用的问题调用Save() - 这是一个不同的用例。)