SSRS - 将报表部署到本地主机报表服务器时出现 Excel 数据源错误

2024-01-04

我需要有关部署到 localhost 的 SSRS 报告的帮助,该报告使用 ODBC 数据源从 Excel 文件检索数据。 当通过 BIDS 2008 预览同一报告时,它会按预期显示结果。但是,将报表部署到运行 BIDS 的同一台计算机 (localhost) 上的报表服务器后,会出现以下错误。

错误:抛出 Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:、Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:无法创建与数据源“dsInvoice”的连接。 ---> System.Data.Odbc.OdbcException:错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序

我尝试过共享数据源和自定义数据源,但都不起作用。当我查找此错误时,它提到我需要使用%windir%\SysWOW64\odbcad32.exe 下的 32 位 ODBC 管理工具这就是我正在使用的,但也不起作用。我是本地计算机上的管理员。

以下是有关该机器的一些信息:

  • Windows 7 64 位
  • SQL Server 2008 R2
  • Office 2010 32 位

重现错误的步骤:

  1. 创建 Microsoft Excel 驱动程序用户 DSN - Test_Excel_Driver - 下%windir%\SysWOW64\odbcad32.exe

  2. 使用 BIDS 2008 创建 SSRS 报告,并选择数据源作为具有以下连接字符串的 ODBC 嵌入式连接 - Dsn=Test_Excel_Driver;dbq=C:...\Test Excel.xlsx;defaultdir=C:...\;driverid=1046; fil=excel 12.0;maxbuffersize=2048;pagetimeout=5

  3. 在 BIDS 中预览报告 - 工作正常!

  4. 将报表部署到具有完全权限的本地主机 SSRS 报表服务器。点击报表管理器中的报表,出现上述错误。


首先使用 OLEDB 而不是 ODBC 会更容易上手,OLEDB 的连接字符串将如下所示:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES";

然后在 SSRS/BIDS 中,当您在数据源屏幕中单击“测试连接”时,您可能会看到以下错误:

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。

该文档说明了 MS Access 驱动程序(包括 OLEDB 驱动程序)only在x86平台下工作,在x64或AnyCPU平台下不兼容。然而这似乎是不真实的。参考:https://stackoverflow.com/a/32760211/495455 https://stackoverflow.com/a/32760211/495455

首先下载安装程序,确保您勾选_64.exe版本:http://www.microsoft.com/en-us/download/details.aspx?id=13255 http://www.microsoft.com/en-us/download/details.aspx?id=13255

  1. 将 AccessDatabaseEngine_x64.exe 提取到文件夹以获取 AceRedist.msi 和 Data.cab 文件。
  2. 在管理模式下打开命令提示符
  3. cd 到您解压下载的文件夹并使用被动参数执行 MSI:

AceRedist.msi /passive

经过这些步骤后,我在 x64 或 AnyCPU 构建配置中构建后成功运行了应用程序(以及没有 BIDS 的 SSRS)。这解决了问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSRS - 将报表部署到本地主机报表服务器时出现 Excel 数据源错误 的相关文章

随机推荐