【问题标题】:How to deploy SQL Reporting 2005 when Data Sources are locked?数据源锁定时如何部署 SQL Reporting 2005?
【发布时间】:2010-09-10 05:16:21
【问题描述】:

这里的 DBA 维护所有 SQL Server 和 SQL 报告服务器。我在 Visual Studio 中有一个自定义开发的 SQL Reporting 2005 项目,该项目在我的本地 SQL 数据库和报告实例上运行良好。我需要部署到生产服务器,所以我在 SQL Reporting 2005 服务器上创建了一个具有上传文件权限的文件夹。通常,只需从 Visual Studio 中进行部署即可上传报告文件。

但是,出于安全考虑,数据源由 DBA 明确维护,并存储在报告服务器上一个单独的锁定公用文件夹中。我让他们为我创建数据源。

当我尝试从 VS 部署时,它给了我错误

“/Data Sources”项已存在。

无论我是部署整个项目还是仅部署一个报告文件,我都会得到这个。我已经在项目属性中设置了OverwriteDataSources=false。 TargetServer URL 和文件夹已验证正确。

我想我可以手动复制文件,但我希望能够从 VS 中进行部署。我可能做错了什么?

【问题讨论】:

  • 您或任何人可以从其他开发计算机部署吗?我一直在关注这个问题,希望得到答案。您是否发现过有关部署情况的任何其他信息?

标签: sql-server visual-studio reporting-services


【解决方案1】:

在您的报告中添加一个名为 ConnectionString 的字符串参数并保存。接下来,在文本编辑器中打开您的 RDL 并像这样更改数据源定义。

  <DataSources>
    <DataSource Name="preserve the datasource name you've been using">
      <ConnectionProperties>
        <DataProvider>SQL</DataProvider>
        <ConnectString>=Parameters!ConnectionString.Value</ConnectString>
      </ConnectionProperties>
      <rd:DataSourceID>preserve your existing GUID</rd:DataSourceID>
    </DataSource>
  </DataSources>

您现在会发现您可以将数据库连接字符串作为报告参数传入。请注意不要向您的 DBA 提及这一点,因为 SSRS 安全系统中没有对此进行控制的规定,当他们发现笼门不仅打开,而且无法关闭时,他们会完全发疯。

【讨论】:

  • 噢……那真是太棒了/太邪恶了;我无法决定是赞成还是反对。 ;)
  • 有趣。但他们肯定会关闭我。 :)
  • 他们关闭你的唯一方法是完全卸载 SSRS。
【解决方案2】:

如果数据源上的属性不允许您覆盖数据源,您将收到警告。但是,应该部署项目或报告的其余部分。检查报告的属性,我认为您会发现它是当前版本。这只是一个警告,不会对您的报表部署造成致命影响。

如果您的部署因数据源的某些安全问题而失败,则将其删除,然后您的项目的其余部分应进行部署。即使您在数据源上遇到错误,VS 也会部署报告或模型。如果项目仍然无法部署,那么问题不在于您的数据源。

【讨论】:

    【解决方案3】:

    请原谅线程死灵术,但这就是 Google 出现的问题。

    虽然我不能把答案归功于我,但我怀疑这就是实际发生的事情 http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/33423ef3-4a28-4c1d-aded-eac33770659d

    我遇到了同样的问题,我的 DBA 现在正在设置我。

    【讨论】:

    • 您链接到的线程仅说明了如何覆盖源或在其他地方部署。即使有这个警告,他似乎也需要知道如何部署。
    • @marr75 - 链接中有一条评论很好地描述了这个问题 - /Data Sources 目录仍然明确需要权限(它不会从父目录继承权限)不会覆盖数据源。
    【解决方案4】:

    您是否检查了将 OverwriteDataSource 项目属性设置为 False 的配置?默认配置为 Active(DebugLocal),但您可能必须将 OverwriteDataSource 设置设置为 False 以用于其他配置,例如生产。您可以使用 All Configurations 将所有部署的 OverwriteDataSource 设置强制为 False。

    【讨论】:

      【解决方案5】:

      这应该只是一个警告(我们在我的商店也有同样的情况)。我可以想象这会导致错误的唯一方法是,如果您将 Visual Studio 设置为将警告视为错误(然后由于错误而不会部署)。如果已设置,请尝试更改此选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-16
        相关资源
        最近更新 更多