锁定数据源后如何部署SQL Reporting 2005?
此处的DBA维护所有SQL Server和SQL Reporting服务器。我在Visual Studio中有一个自定义开发的SQL Reporting 2005项目,可以在本地SQL数据库和Reporting实例上正常运行。我需要部署到生产服务器,因此我在SQL Reporting 2005服务器上创建了一个具有上传文件权限的文件夹。通常,从Visual Studio中进行部署是上传报告文件所需要的全部。
但是,出于安全目的,数据源由DBA显式维护,并存储在报表服务器上单独的锁定的公用文件夹中。我让他们为我创建数据源。
当我尝试从VS部署时,它给了我错误
The item '/Data Sources' already exists.
无论是部署整个项目还是仅部署单个报告文件,我都可以理解。我已经在项目属性中设置了" OverwriteDataSources = false"。已验证TargetServer URL和文件夹正确。
我想我可以手动复制文件,但是我希望能够在VS中进行部署。我可能做错了什么?
解决方案
回答
我们是否检查了将OverwriteDataSource项目属性设置设置为False的配置?默认配置为Active(DebugLocal),但是对于其他配置(例如Production),我们可能必须将OverwriteDataSource设置设置为False。我们可以使用"所有配置"强制将所有部署的OverwriteDataSource设置设置为False。
回答
如果数据源上的属性不允许我们覆盖数据源,则将收到警告。但是,项目或者报告的其余部分应部署。检查报告的属性,我认为我们会发现它是当前版本。这仅是警告,对报表部署不是致命的。
如果由于数据源的某些安全问题而导致部署失败,则将其删除,然后应部署项目的其余部分。即使我们在数据源上遇到错误,VS也会部署报告或者模型。如果项目仍然无法部署,那么问题就出在数据源之外。
回答
将一个名为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安全系统中没有用于控制它的规定,当他们发现不仅笼门已打开而且无法关闭时,他们也会完全生气。
回答
原谅线程的死法,但这就是Google提出的。
虽然我无法为这个答案表示赞赏,但我怀疑这是实际发生的情况
http://social.msdn.microsoft.com/Forums/zh-CN/sqlreportingservices/thread/33423ef3-4a28-4c1d-aded-eac33770659d
我遇到了同样的问题,现在我的DBA正在设置我。
回答
这仅是一个警告(我们的店里有同样的情况)。我可以想象这将导致错误的唯一方法是,如果将Visual Studio设置为将警告视为错误(由于错误,它将无法部署)。如果已设置,请尝试更改此选项。