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

问题描述:

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

错误:抛出Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:,Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:无法创建到数据源'dsInvoice'的连接。 ---> System.Data.Odbc.OdbcException:ERROR [IM002] [微软] [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年,并选择数据源与下面的连接字符串的ODBC嵌入式连接的SSRS报告 - DSN = Test_Excel_Driver; DBQ = C:... \ Test Excel.xlsx; defaultdir = C:... \; driverid = 1046; fil = excel 12.0; maxbuffersize = 2048; pagetimeout = 5

  3. 在BIDS中预览报告 - !

  4. 将报告部署到具有完全权限的localhost SSRS报告服务器。点击报告管理器中的报告并获得上述错误。

+0

任何人都可以帮助我解决这个问题吗?我真的需要找到一个解决方案,我已经搜索了很多,没有任何运气。 –

首先使用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当你在数据源屏幕上单击“测试连接”您可能会看到这样的错误:

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

文档状态MS访问驱动程序(包括OLEDB驱动程序)仅在x86平台下工作,是64位或AnyCPU平台下兼容。然而这似乎是不真实的。参考文献:https://*.com/a/32760211/495455

首先下载安装程序确保您勾选_64.exe版本: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

完成这些步骤后,我设法运行应用程序(以及在没有BIDS的情况下使用SSRS)或在任何CPU构建配置中使用AnyCPU。这解决了问题。

+0

嗨杰里米,你提供的解决方案解决了我的问题。我能够通过使用OLEDB连接而不是ODBC来运行SSRS的报告。谢谢 ! –

您是否在下创建了DSN用户DSN选项卡?如果是的话,你可以尝试创建它在文件DSN系统DSN并再试一次?

+0

嗨,山姆,是的,我在用户DSN下创建它,它没有工作。当我在System DSN下创建它时,我得到了一个不同的错误:**错误[IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序**之间的体系结构不匹配** –

+0

在这种情况下,您可以在** System DSN **下创建64位(C:\ Windows \ System32 \ odbcad32.exe)中的DSN并尝试一下吗? – Sam