SQL 2005报告服务和Visual Studio 2008不兼容

有时很难跟上所有的步伐2005年,这个2008年,从微软。我经常惊讶于微软的产品管理不仅能保持一切正常,而且还能协调产品线之间的发布和依赖关系,特别是当这些依赖关系不属于同一部门或产品领域时。但就像命运所安排的,今天我很不幸地遇到了一个不太为人所知的情况“哦,是的,它并不为人所知,但是当你这样做的时候它是不兼容的”。

当使用Visual Studio 2008构建报表,然后将这些报表定义(RDL文件)部署到SQL 2005报表服务时,就会出现不兼容性。使用VS 2008创建的数据库报告与SQL 2008报告服务工作得很好,但与SQL 2005报告服务不兼容。只有在VS 2000和VS 2005中创建的报表设计与SQL 2005报表服务兼容。如果你尝试在SQL 2005报告服务上部署VS 2008设计的报告,你会得到类似这样的小错误消息:

错误2报告定义无效。详细信息:报告定义有一个无效的目标名称空间'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition',无法升级。

我是在使用VS 2008创建了许多报表,然后试图将它们部署到运行SQL 2005报表服务的服务器上之后才了解到这一点的。该服务器还支持另一个仅在SQL server 2005上运行的应用程序,该应用程序还没有经过SQL server 2008的测试或升级。这种升级可能在一段时间内不会发生。我之前所有的开发、测试和部署都是在运行2008 Reporting Services的服务器上进行的,这就是为什么我之前没有遇到这个问题的原因。

在做了一些谷歌搜索之后,我很快发现我不是这个星球上唯一遇到这个问题的人。实际上,这个问题早在2008年9月就被提出了(没有解决,也没有提供解决方案),当时SQL Server 2008正从beta版本过渡到正式发布的产品。其他微软用户开始使用VS 2008来创建和维护报表设计,但一直不知道他们只能在SQL 2008报表服务上工作。Visual Studio 2008也会将现有的2005报表项目升级到新的2008格式,而客户不会意识到这是单向的,他们会失去与2005报表服务的兼容性。大多数客户都经历了惨痛的教训(在报表设计已经创建或升级之后)。

问题或bug报告,被报告给微软去年夏末,然后在2008年10月关闭。下面是来自SQL Server报告服务团队Chris b的回复:

“你所看到的行为是经过设计的。不能将SSRS 2008 RDL模式中定义的报表发布到SSRS 2005报表服务器。一旦将报表项目从VS 2005升级到2008,它就会将所有报表转换为2008。如果你希望能够发布报告到SSRS 2005服务器,你需要使用VS 2000或VS 2005。

我认为他的基本意思是微软没有选择在两个版本之间构建任何向后兼容性,或者兼容性模式选项,就像他们在其他产品(如Office产品)中经常做的那样。

MVP, MSDN论坛主持人Teo Lachev,解释了微软的原因对于不以这种方式保持兼容性:

“现实情况是,我们想要或需要对产品做的改变和增强太多了,设计环境的向后兼容性并不现实。许多变化是由我们的客户推动的。有大的变化在我们的报表设计控制自己,然后投标的“布线”过程,因为我们想升级到VS2008中同时,RDL本身是增强,支持伟大的新功能,当然必须改变服务器组件来支持新RDL以及许多其他改进完成在服务器来提高性能和处理。

在2005年和2008年的设计环境中来回工作并不是一件微不足道的事情。单独处理这两个RDL版本就会给设计工具添加很多额外的代码。我们认为这是不现实的,如果一个决定必须让我们的客户作为一个整体,更希望看到更多的增强和改进,使2008年的proudct……”

我猜客户所遭受的成本和生产力打击也不是微不足道的。那么,客户有哪些选择呢?以下是微软在线支持代表康健的回复,他建议升级SQL服务器是最好的选择:

“据我所知,把2008年的SSRS项目降级为2005年的SSRS自然是不受支持的。

如果可能的话,我建议您将报表服务器升级到SSRS 2008。如果项目报告较少,我们可以在SSRS 2005中开发整个项目,使用SQL Server 2008数据库作为数据源。

不是每个人都可以轻松地升级他们的数据库服务器。除了涉及的软件成本外,该应用程序可能还没有准备好将数据库升级到SQL Server 2008。或者客户可能需要同时支持2005和2008报告服务的报告。对于在其产品中使用SQL Server的供应商来说,这是一种非常可能的情况,而且我可以想象,这在许多IT公司中是一种常见的情况。

所以在我的情况下,选择此时有:1)现有的服务器升级到SQL server 2008(实际上并不是一个选项在这个时候由于约束的其他应用程序使用相同的数据库服务器),2)另一个服务器上部署报告已经运行SQL server 2008, 3)建立了一个新的SQL server 2008服务器,或4)返回并重新创建所有的报告在Visual Studio 2005(或2000)。

4个选项中有3个对微软有积极的收益结果,第四个选项是对客户的生产力的巨大损失。由于RDL模式更改中的新功能所带来的好处,客户似乎在工作效率上受到了打击,而且/或不得不为数据库服务器升级付费,无论选择了什么选项。

像这样的吗?以下是米切尔最近的一些帖子。米切尔的书建议:还可以访问米切尔的其他博客和播客:

访问微软子网获取更多的新闻,博客,观点从网络上。报名参加每两周微软简报。(点击新闻/微软新闻警报。)

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对最重要的话题发表评论。

版权©2009Raybet2

工资调查:结果在