SSRS - 将报告部署到localhost报告服务器时出现Excel数据源错误

时间:2017-03-21 23:44:57

标签: sql-server-2008 odbc ssrs-2008-r2 dsn

我需要帮助部署到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. %windir%\ SysWOW64 \ odbcad32.exe

  2. 下创建Microsoft Excel驱动程序用户DSN - Test_Excel_Driver
  3. 使用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

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

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

2 个答案:

答案 0 :(得分:3)

首先使用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中点击"测试连接"在DataSource屏幕中,您可能会看到此错误:

  

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

文档说明MS Access驱动程序(包括OLEDB驱动程序)在x86平台下工作,并且在x64或AnyCPU平台下不兼容。然而,这似乎是不真实的。参考:https://stackoverflow.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:
  4. AceRedist.msi /passive

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

答案 1 :(得分:1)

您是否在用户DSN 标签下创建了DSN?如果是这样,您可以尝试在文件DSN 系统DSN 下创建它,然后重试?