SSRS - Excel 将报表部署到本地主机报表服务器时出现数据源错误
SSRS - Excel data source error when report deployed to localhost report server
我需要有关部署到本地主机的 SSRS 报告的帮助,该报告使用 ODBC 数据源从 excel 文件中检索数据。
通过 BIDS 2008 预览同一报表时,它会按预期显示结果。但是在将报告部署到 BIDS 为 运行 的同一台计算机(本地主机)上的报告服务器后,它会出现以下错误。
错误:抛出 Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:,Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:无法创建与数据源 'dsInvoice' 的连接。 ---> System.Data.Odbc.OdbcException: 错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序
我尝试过共享数据源和自定义数据源,但都没有用。当我查找此错误时,它提到我需要在 %windir%\SysWOW64\odbcad32.exe 下使用 32 位 ODBC Administrator 工具,这就是我正在使用的,但是也没有用。我是本地计算机的管理员。
以下是机器的一些信息:
- Windows 7 64 位
- SQL 服务器 2008 R2
- Office 2010 32 位
重现错误的步骤:
创建 Microsoft Excel 驱动程序用户 DSN - Test_Excel_Driver - 在 %windir%\SysWOW64\odbcad32.exe
使用 BIDS 2008 和 select 数据源创建 SSRS 报告作为 ODBC 嵌入式连接,连接字符串如下 - Dsn=Test_Excel_Driver;dbq=C:...\测试 Excel.xlsx;defaultdir=C:...\;driverid=1046;fil=excel 12.0;maxbuffersize=2048;pagetimeout=5
在 BIDS 中预览报告 - 工作正常!
使用完全权限将报表部署到本地主机 SSRS 报表服务器。在报表管理器中点击报表出现以上错误
您是否在 用户 DSN 选项卡下创建了 DSN?如果可以,您可以尝试在 File DSN 或 System DSN 下创建它并重试吗?
首先使用 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 中单击数据源屏幕中的 "Test Connection" 时,您可能会看到此错误:
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
文档指出 MS Access 驱动程序(包括 OLEDB 驱动程序)仅 在 x86 平台下工作,在 x64 或 AnyCPU 平台下不兼容。然而,这似乎是不真实的。参考:
首先下载安装程序,确保 勾选 _64.exe 版本:http://www.microsoft.com/en-us/download/details.aspx?id=13255
- 将 AccessDatabaseEngine_x64.exe 解压到一个文件夹中以获取 AceRedist.msi 和 Data.cab 文件。
- 在管理员模式下打开命令提示符
- cd 到您解压缩的文件夹并使用被动参数执行 MSI:
AceRedist.msi /passive
在这些步骤之后,我设法 运行 在 x64 或 AnyCPU 构建配置中构建应用程序(以及没有 BIDS 的 SSRS)。这解决了问题。
我需要有关部署到本地主机的 SSRS 报告的帮助,该报告使用 ODBC 数据源从 excel 文件中检索数据。 通过 BIDS 2008 预览同一报表时,它会按预期显示结果。但是在将报告部署到 BIDS 为 运行 的同一台计算机(本地主机)上的报告服务器后,它会出现以下错误。
错误:抛出 Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:,Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:无法创建与数据源 'dsInvoice' 的连接。 ---> System.Data.Odbc.OdbcException: 错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序
我尝试过共享数据源和自定义数据源,但都没有用。当我查找此错误时,它提到我需要在 %windir%\SysWOW64\odbcad32.exe 下使用 32 位 ODBC Administrator 工具,这就是我正在使用的,但是也没有用。我是本地计算机的管理员。
以下是机器的一些信息:
- Windows 7 64 位
- SQL 服务器 2008 R2
- Office 2010 32 位
重现错误的步骤:
创建 Microsoft Excel 驱动程序用户 DSN - Test_Excel_Driver - 在 %windir%\SysWOW64\odbcad32.exe
使用 BIDS 2008 和 select 数据源创建 SSRS 报告作为 ODBC 嵌入式连接,连接字符串如下 - Dsn=Test_Excel_Driver;dbq=C:...\测试 Excel.xlsx;defaultdir=C:...\;driverid=1046;fil=excel 12.0;maxbuffersize=2048;pagetimeout=5
在 BIDS 中预览报告 - 工作正常!
使用完全权限将报表部署到本地主机 SSRS 报表服务器。在报表管理器中点击报表出现以上错误
您是否在 用户 DSN 选项卡下创建了 DSN?如果可以,您可以尝试在 File DSN 或 System DSN 下创建它并重试吗?
首先使用 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 中单击数据源屏幕中的 "Test Connection" 时,您可能会看到此错误:
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
文档指出 MS Access 驱动程序(包括 OLEDB 驱动程序)仅 在 x86 平台下工作,在 x64 或 AnyCPU 平台下不兼容。然而,这似乎是不真实的。参考:
首先下载安装程序,确保 勾选 _64.exe 版本:http://www.microsoft.com/en-us/download/details.aspx?id=13255
- 将 AccessDatabaseEngine_x64.exe 解压到一个文件夹中以获取 AceRedist.msi 和 Data.cab 文件。
- 在管理员模式下打开命令提示符
- cd 到您解压缩的文件夹并使用被动参数执行 MSI:
AceRedist.msi /passive
在这些步骤之后,我设法 运行 在 x64 或 AnyCPU 构建配置中构建应用程序(以及没有 BIDS 的 SSRS)。这解决了问题。