【问题标题】:How do I effectively store a connection string in machine.config only?如何仅在 machine.config 中有效地存储连接字符串?
【发布时间】:2010-06-16 20:40:32
【问题描述】:

我们正在迁移到在同一台服务器上运行多个 SQL Server 引擎(一个测试引擎和一个生产引擎)的环境。我们也有单独的测试和生产网络服务器,并希望我们的 asp.net 应用程序“神奇地”使用测试网络服务器上的测试数据库引擎和生产网络服务器上的生产数据库引擎。我们希望将连接字符串存储在 machine.config 而不是 web.config 中,但是当我们将其放在 machine.config 中时,Visual Studio 的 IDE(尤其是数据集)无法识别 machine.config 包含连接。

有没有人知道在 Visual Studio 中显示这些 machine.config 连接字符串的解决方案,或者可以适应这种情况的不同解决方案?

谢谢。

【问题讨论】:

  • 您使用的是哪个版本的 Visual Studio?
  • 目前是 2008 年。一旦我们完成迁移到新的 MS SQL 2008 R2 环境,将迁移到 2010。

标签: asp.net sql-server visual-studio connection-string machine.config


【解决方案1】:

(请注意,我从未实际尝试或测试过这个,但我相信它会起作用。如果可以,请告诉我。)您可以将连接字符串添加到 machine.config,然后将 connectionstring.config 文件添加到您的项目在根级别。 在此文件的属性中选择不部署

connectionstring.config 文件的内容:

<?xml version="1.0"?>
  <connectionStrings>
    <add name="someName" connectionString="yourString" />
    <add name="someName2" connectionString="yourString2" />
    <add name="someName3" connectionString="yourString3" />
  <connectionStrings>

最后在您的项目的 web.config 中修改连接字符串部分,如下所示

<connectionStrings file="connectionstring.config">
</connectionStrings>

基本上,您所做的是设置开发环境以从特定文件中读取连接字符串。当部署到测试或生产服务器时,connectionstring.config 文件将不存在,因此它应该恢复使用机器配置中指定的连接字符串。

【讨论】:

  • 其实file=属性存在于&lt;appSettings&gt;部分。但是,您可以在&lt;connectionStrings&gt; 部分使用configSource=
  • 虽然不是我真正想要的解决方案相当,但这可能是我能得到的最接近的解决方案。我试试看。
  • connectionStrings.config 文件不存在时出现错误:“无法打开 configSource 文件 'connectionStrings.config'。”
猜你喜欢
  • 2010-12-15
  • 2010-12-18
  • 2013-01-01
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 2011-08-11
相关资源
最近更新 更多