我需要帮助部署到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管理器工具,这就是我使用的内容但那也没有用。我是本地计算机的管理员。
以下是有关该机器的一些信息:
重现错误的步骤:
在%windir%\ SysWOW64 \ odbcad32.exe
使用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
在BIDS中预览报告 - 工作正常!
将报告部署到具有完全权限的localhost SSRS报告服务器。单击报告管理器中的报告并获得上述错误。
答案 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
AceRedist.msi /passive
完成这些步骤之后,我设法在构建x64或AnyCPU构建配置后运行应用程序(以及没有BIDS的SSRS)。这解决了问题。
答案 1 :(得分:1)
您是否在用户DSN 标签下创建了DSN?如果是这样,您可以尝试在文件DSN 或系统DSN 下创建它,然后重试?