【问题标题】:Using a Website-specific ConnectionString with a DLL将特定于网站的 ConnectionString 与 DLL 一起使用
【发布时间】:2010-10-10 19:34:09
【问题描述】:

设置:

我有一个使用 ConnectionString 连接到 SQL 数据库的 DLL。当我将 DLL 添加到我的网站时,我必须将连接字符串添加到我的 web.config 中,以使我的 DLL 正常运行(这是设计使然)。一旦我将它添加到 web.config 中,那么一切正常(如预期的那样)。

问题:

当我想将连接字符串移动到在 IIS > 默认网站 > 属性 > ASP.NET 选项卡 > 编辑全局配置... > 连接字符串管理器中找到的网站的 ASP.NET 应用程序设置中时,问题就开始了

如果我从我的 web.config 中删除它并将其放在那里,我的 DLL 将无法工作。如果我在网站的其他任何地方(而不是来自 DLL)使用连接字符串,我可以通过这种方法很好地访问数据库,但由于某种原因,我的 DLL 只能在 web.config 中访问它。

问题:

如何让我的 DLL 使用 ASP.NET 配置设置连接字符串管理器中列出的连接字符串而不是 web.config?

【问题讨论】:

    标签: asp.net dll connection-string


    【解决方案1】:

    您必须从通用 ASP.Net 配置设置中查找该部分,该部分可以通过 WebConfigurationManager 类检索,而不是通过 ConfigurationManager.ConnectionStrings 查找连接字符串。

        // Get the connectionStrings section.
    ConnectionStringsSection connectionStringsSection =
        WebConfigurationManager.GetSection("connectionStrings")
        as ConnectionStringsSection;
    
    // Get the connectionStrings key,value pairs collection.
    ConnectionStringSettingsCollection connectionStrings =
        connectionStringsSection.ConnectionStrings;
    
    // Get the collection enumerator.
    IEnumerator connectionStringsEnum =
        connectionStrings.GetEnumerator();
    

    【讨论】:

    • 另外,Linq to SQL 会在您每次保存 DBML 时覆盖 db 连接字符串,所以我总是必须在记事本中打开以覆盖它,然后再构建它。
    • 覆盖数据库连接字符串?意思是,你的本地配置文件?
    • 不,我的意思是如果对 DBML 的 Designer.vb 代码进行了更改,Visual Studio 将在您保存时覆盖任何手动更改。
    • 是的,这是真的。这与这个问题不同。
    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多