多个项目之间共享连接字符串

Shared connection string between multiple projects

我在 IIS 中托管了多个项目。这些都共享一个数据库,该数据库使用 EF6 调用。我希望能够使用一个共享的连接字符串配置文件,我可以从每个其他项目的 web.config 中引用它。这样,我就可以从一个位置管理连接字符串的任何机会。根据我在网上找到的内容,我试图通过虚拟目录和 connectionString 的 configSource 属性来完成此操作。

IIS 结构

-虚拟目录(映射到/DbConfigFile)
-网络应用程序 1
-网络应用 2
-网络应用程序 3

WebApps 的 Web.config connectionString 部分
<connectionStrings configSource="/DbConfigFile/testDB.config"></connectionStrings>

包含所有应用程序所需的连接字符串的外部配置文件 (testDB.config)。 <connectionStrings> <add name="TestDBEntities" connectionString="metadata=res://*/TestDB.csdl|res://*/TestDB.ssdl|res://*/TestDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=TestDB;initial catalog=VBODashboard;persist security info=True;user id=Test;password=Test;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> </connectionStrings>

我在 configSource 属性中尝试了各种路径,但没有成功(~/DbConfigFile/testDB.config,testDB.config)。我将如何访问此文件?或者有更好的方法来完成这个吗?

我最终采纳了 mason 的一个建议并创建了一个自定义配置文件。这让我研究发现在初始化上下文时可以通过代码指定连接字符串。然后,我通过代码浏览了 XML 文件并提取了连接字符串值。 :

public partial class TestDBEntities : DbContext
{
 public TestDBEntities()
  : base(<calling code to get connection string> , true)
    {
    }
     ...
}