我继承了一些非常古老的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"级别,以便每个网站可以设置不同?
答案 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()
- 这是一个不同的用例。)