本文可帮助你解决在 SQL Server 2012 Data Tools 中尝试在报表服务器项目中加载自定义扩展时收到错误消息的问题。
适用于: SQL Server 2012 Enterprise、SQL Server 2012 Business Intelligence、SQL Server 2012 Developer、SQL Server 2012 Standard、SQL Server 2012 Web
原始 KB 数: 2750044
症状
请考虑以下方案:
- 开发自定义 Reporting Services 数据处理扩展插件。
- 自定义数据处理扩展插件程序集引用 Microsoft.ReportingServices.Interfaces.dll 文件。 该文件包含在 MICROSOFT SQL Server 2005 Reporting Services、SQL Server 2008 Reporting Services 或 SQL Server 2008 R2 Reporting Services 中。
- 在 MICROSOFT SQL Server 2012 中安装 SQL Server Data Tools (SSDT)。
- 使用 SSDT 部署数据处理扩展插件程序集。
- 创建新的基于商业智能模板的报表服务器项目,并尝试选择自定义数据处理扩展插件以添加新数据源。
在这种情况下,你将收到类似于以下内容的错误消息:
无法连接到数据源“<数据源名称>”。 所选数据扩展插件“<自定义扩展名称>”未安装或无法加载。 验证所选数据扩展插件是否已安装在客户端上用于本地报表,并在报表服务器上安装已发布报表。
注释
数据源名称 是数据源名称的占位符, 自定义扩展名称 是自定义扩展名称的占位符。
如果在任何 SQL Server Reporting Services (SSRS) 报表中加载自定义扩展,然后通过 SSRS Web 服务或 Web 界面运行报表,则自定义扩展将成功运行。
此问题不限于数据处理扩展插件。 当任何自定义扩展引用 SQL Server 2005 Reporting Services、SQL Server 2008 Reporting Services 或 SQL Server 2008 R2 Reporting Services 随附的 Microsoft.ReportingServices.Interfaces.dll 文件时,可能会遇到类似的错误。
原因
此问题是由于 SSDT 安装过程中的 bug 而发生的。
安装 SSDT 后,以下错误条目将添加到 devenv.exe.config 文件和 PreviewProcessingService.exe.config 文件中:
<dependentAssembly>
<assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
<bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0"/>
</dependentAssembly>
如果自定义扩展引用程序集版本为 9.0.242.0 的 Microsoft.ReportingServices.Interfaces.dll 文件,SSDT 将查找程序集版本为 10.0.0.0.0 的 Microsoft.ReportingServices.Interfaces.dll 文件。 但是,安装 SSDT 的计算机上可能不存在此较新的程序集。
决议
若要解决此问题,请使用 devenv.exe.config 文件和 PreviewProcessingService.exe.config 文件中的正确条目。
若要更正 devenv.exe.config 文件中的条目,请执行以下步骤:
打开 位置中的 devenv.exe.config 文件:
%Program Files%\Microsoft Visual Studio 10.0\Common7\IDE。注释
PreviewProcessingService.exe.config 文件位于
%Program Files%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies.在 devenv.exe.config 文件中,找到以下条目:
<dependentAssembly> <assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral"/> <bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0"/> </dependentAssembly>将条目替换为以下内容:
<dependentAssembly> <assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="8.0.242.0" newVersion="11.0.0.0" /> <bindingRedirect oldVersion="9.0.242.0" newVersion="11.0.0.0" /> <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" /> </dependentAssembly>保存 devenv.exe.config 文件。
关闭,然后重新打开 Visual Studio 或 SSDT。
注释
更正 PreviewProcessingService.exe.config 文件中条目的步骤相同。