【问题标题】:Where do you store your database connectionstring?您将数据库连接字符串存储在哪里?
【发布时间】:2008-09-03 02:12:34
【问题描述】:

我通常将连接字符串存储在 web.config 或 Visual Studio 项目的应用程序设置中。我目前正在处理的应用程序会多次访问数据库,这意味着它每次都会查找连接字符串。我应该将连接字符串放在缓存中还是应该考虑将整个 SqlConnection 对象存储在缓存中以消除一直打开和关闭它们的需要?

更新:似乎共识是将连接字符串存储在配置文件中,并将缓存留在 ADO.NET 的信任手中

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    我不会缓存连接对象,这会破坏内置的连接池——ADO.NET 将自己有效地处理连接(假设您实例化并关闭它们)。

    就连接字符串本身而言,如果从连接加载它,则不需要缓存它——.NET 2.0 框架中的连接管理器对象在您第一次访问它时将配置加载到内存中,所以有不会重复访问文件系统。

    【讨论】:

      【解决方案2】:

      web.config 被缓存。但即使不是,也不要忘记 ado.net 维护一个连接池 - 每次调用 db 时它都不会打开新连接。

      【讨论】:

        【解决方案3】:

        我通常将连接字符串缓存在我的应用程序的全局配置对象中。该值在程序执行开始时从它存储的位置加载——文件、加密文件、配置文件等。ADO.NET 非常擅长将连接对象缓存到数据库,因此我不会缓存 SqlConnection 对象.

        【讨论】:

          【解决方案4】:

          将其保存在配置文件中。使用 NHibernate 或 Linq to Sql 等工具提供的强大数据访问策略。

          【讨论】:

            【解决方案5】:

            据我所知,.config 文件的内容无论如何都保存在内存中......我会回复你的。

            编辑:HE 说了什么

            【讨论】:

              【解决方案6】:

              一个可能的解决方案: 存储初始加密连接字符串(在 Web.Config 或 App.Config 中),以便登录只允许运行一个存储过程进行身份验证。比从存储在 db 的配置表中的加密值动态切换登录。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-05-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-05-22
                • 1970-01-01
                相关资源
                最近更新 更多