【问题标题】:VB.Net Read 2 Connection Strings from external fileVB.Net 从外部文件中读取 2 个连接字符串
【发布时间】:2011-09-09 11:03:48
【问题描述】:

我有一个使用两个连接字符串的 vb.net 程序。

该程序将用于多个域的多个 Web 服务器,它们的唯一区别是两个连接字符串。

从与我的实际 .vb 代码分开的文件中读取这些连接字符串的最佳解决方案是什么?

理想情况下,我希望能够将 .vb 和连接字符串文件放到任意数量的 asp.net 网站上的自己的文件夹中,并且不更新任何其他内容(例如添加到 web.config 的任何连接或任何内容)与包含连接字符串的外部文件相比,我认为像 xml 这样的东西就足够了吗?

如果可能的话,你能给我代码示例吗?

【问题讨论】:

    标签: asp.net database vb.net connection-string


    【解决方案1】:

    我会将它们放在同一个 web.config 中。给他们两个不同的名字,并取决于你在哪个服务器上。您可以使用: Request.ServerVariables("SERVER_NAME") -或者- Request.ServerVariables("LOCAL_ADDR") 根据您的预期回报,您可以调整 webconfigurationmanager 以读取两个 connectionStrings 属性之一。您最好的选择是从基本页面设置会话变量。调整它以查看 Session 是否已被填充,因此,您可以在整个应用程序中读取该变量。

    如果您使用两个不同的 .config 文件,您将遇到一个问题,即您必须编写整个应用程序,您希望始终使用哪个应用程序,具体取决于您所在的服务器。
    如果您在另一个 web.config 文件中包含一个 web.config 文件,则与在同一个 web.config 文件中添加相同的两个不同的连接字符串相同。

    【讨论】:

      【解决方案2】:

      使用内置的.config 支持。

      如果您将app.config 文件添加到您的项目,您可以添加一个connectionStrings 部分,您可以使用ConfigurationManager.ConnectionStrings 属性访问它。

      请不要试图重新发明轮子。

      【讨论】:

      • 其中一些其他文件已经有一个 app.config 文件,我不想编辑与我将它们放入的站点有关的任何内容。我可以在自己的文件夹中有一个单独的 .config 文件吗?
      • @TGuimond - 您可以拥有一个单独的文件,但不能不更改现有的.config,并且还可能对应用程序进行更改。我不明白您为什么拒绝更改配置文件,因为这就是它的用途。
      • 我明白你的意思,但我无法直接访问这些应用程序环境,而且我必须为每个不同的组织将代码发送给不同的人 所有这些组织都非常安全有意识并且不允许外部开发人员在其 Web 应用程序中编辑任何内容。压缩文件夹并告诉他们将其放入他们的应用程序中,而不是要求他们编辑 .config 文件等,这样的麻烦要少得多。
      • @TGuimond - 然后向他们提供说明,以便他们自己编辑配置。我仍然不明白应用程序应该如何获取这些信息并使用它而不进行更改。也许您需要重新审视您的问题并解释您想要实现的目标,而不是询问您认为可以实现它的一种方式。
      • 构建应用程序以引用通用连接字符串名称,如 databaseString 或类似名称。将其压缩并发送给一组。然后为第二个环境编辑您的 connectionString 并将其压缩,然后将其发送给他们。我可以理解不允许访问生产数据(数据库).. 但不允许它访问 web.config?似乎您的安全经理对工作安全性比常识更感兴趣。当您升级数据源并且它发生变化时会发生什么?如果他们那么担心安全性,他们无论如何都会加密配置部分。
      猜你喜欢
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 2013-02-23
      相关资源
      最近更新 更多