使用64位OLEDBConnection的64位.NET应用程序无法使用X080004005编写Excel电子表格
我有一个读取和写入Excel电子表格的Windows服务应用程序(C#,.NET 4.0框架)。 在Windows 2012服务器/ SP2上,它在32位模式下运行良好。
我已经转换它在64位模式下运行。 我们删除了Access 2007驱动程序,并在服务器上安装了Microsoft Access数据库Engine_x64。 之后启动服务器,以确保。
它仍然可以读取电子表格。 但是,当它试图打开另一个OLEDB连接,用E_FAIL X80004005写入错误时,捕获所有错误types,打开OLEDB连接时。
使用的连接string是:
connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0; " + "Data Source=" + responseExcelFile + ";" + @"Extended Properties=""Excel 12.0;""";
注意我已经用IMEX=1;HDR=YES
试过了,尽pipe我们得到了相同的结果,而且这些选项似乎是读取电子表格而不是写入。
我意识到的一件事情是连接stringdata source
中的responseExcelFile
只是一个文件名,而现在还不存在,因为我们要写入它。 但是,使用OLEDB 32符合连接string时相同的代码工作正常。 另外,请注意,无论要写入的responseExcelFile
是.xsl还是.xslx,我都会得到相同的错误。
这不是权限问题,运行服务的帐户完全控制文件名中的目录。 这也不是重复的文件名,因为它是时间戳。
收到的实际错误是:
错误—批量查询导出过程错误:NewBulkQueryProcessor:IErrorInfo.GetDescription失败,E_FAIL(0x80004005)。 在System.Data的System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,对象poolGroupProviderInfo,DbConnectionPool池,DbConnection拥有对象)在System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr,OleDbConnection连接)。 System.Data.ProviderBase上的System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,TaskCompletionSource'1重试,DbConnectionOptions userOptions,DbConnectionInternal oldConnection,DbConnectionInternal&连接)上的ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup poolGroup,DbConnectionOptions userOptions) DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource'1 retry,DbConnectionOptions userOptions)System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConn ection outerConnection,DbConnectionFactory connectionFactory)在BulkQuery.BulkQueryOutputFile.CreateExcelSpreadsheet(String responseExcelFile)System.Data.OleDb.OleDbConnection.Open()
任何帮助,将不胜感激。
- 为什么在将数据从Excel传输到CSV时,SSIS将最后一行保存为NULL?
- 当excel通过C#代码打开时,macros不执行,而在手动打开excel时执行VBA代码
- 使用dotTrace分析Excel加载项
- 打开excel错误:System.Runtime.InteropServices.COMException(0x80080005):检索与CLSID的组件的COM类工厂
- 无法findassemblyentity frameworkv 4.4.0.0
- VB.Net – Excel COM对象没有得到释放
- 用.NET生成excel图表的免费库
- 单元格背景颜色将HTML导出到Excel
- 从Excel中读取数据