【问题标题】:How to deploy SSRS different Connection String to different environment?如何将 SSRS 不同的连接字符串部署到不同的环境?
【发布时间】:2021-10-26 23:34:46
【问题描述】:

我正在使用 SQL Server 和 SSRS 2017。

当我部署 C# 代码时,我可以使用 .config 文件根据环境设置不同的变量,例如:

On DEV, the variable MyDBConString in the config file = Data Source=MyDEVSQLServer;Initial Catalog=MyDB
On UAT, the variable MyDBConString in the config file= Data Source=MyUATSQLServer;Initial Catalog=MyDB

如何使用 SSRS 执行此操作,因为没有 .config 文件。

当它部署 .rds(数据源)文件时,它将它设置为我在 Visual Studio 中拥有的连接字符串(例如:Data Source=MyDEVSQLServer;Initial Catalog=MyDB)。

所以,当我去报告本身时,数据源连接字符串设置为 Data Source=MyDEVSQLServer;Initial Catalog=MyDB

如何部署 SSRS 以使 .rds 因环境而异?

谢谢

【问题讨论】:

  • 不要部署您的共享数据源...保持网站唯一性。
  • 或者...将相同的连接字符串部署到所有环境并具有特定于应用程序的别名,例如:SsisDataSource,在每个环境的 SQL Server 配置管理器 > SQL Native Client 配置 > 别名中。
  • 正如 Dale K 建议的那样。最好使用共享数据源。如果这些在您的开发服务器和生产服务器上具有相同的名称,那么当您部署报告时,它将使用具有该名称的数据源。 By default 部署报告时不会覆盖数据源,因此一旦在每个环境中设置了共享数据源,就无需再做任何事情了。

标签: sql-server reporting-services connection-string


【解决方案1】:

可以在数据源中使用表达式来基于参数构造连接字符串。

为环境创建一个文本参数。

创建一个新数据集。单击表达式按钮 [Fx] 打开表达式生成器。

创建一个 SWITCH 语句,为所选参数的每种可能性创建连接字符串。

对于此示例,我们为每个环境设置了相同的用户名和密码,但可以将其添加到环境的各个字符串中。

【讨论】:

  • 正如其他人所提到的,正确的做法是让单独的 DEV 和 PROD 服务器具有指向同一环境的不同连接字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多