【问题标题】:Shared connection string between multiple projects多个项目之间的共享连接字符串
【发布时间】:2018-05-04 20:31:50
【问题描述】:

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

IIS 结构

-VirtualDirectory(映射到 /DbConfigFile)
-WebApp 1
-WebApp 2
-WebApp 3

WebApps 的 Web.config 连接字符串部分
<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)。我将如何访问该文件?或者有没有更好的方法来做到这一点?

【问题讨论】:

  • 为什么不将连接字符串存储在环境变量中?还是在配置数据库中?或者在任何自定义配置文件中?您不必坚持使用 .config 连接字符串来存储此信息:它只是一个字符串!
  • 查看这篇博文here。您可以使用“添加为链接”选项

标签: asp.net-mvc iis web-config connection-string


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 2013-07-17
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多