我试图连接ms access db (mdb/accdb文件)可用在网络/共享驱动器内使用c#代码REST API/Webmethods。相同的代码工作良好,如果我使用控制台应用程序,但抛出连接错误,如果在Rest API中使用,即调用使用Rest API(VS 2013)。
异常:System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception.
System.Runtime.InteropServices.SEHException was unhandled by user code
HResult=-2147467259
Message=External component has thrown an exception.
Source=System.Data
ErrorCode=-2147467259
代码: string connectionString = @"Provider=Microsoft.ACE.OLEDB.12;" + @"Data Source=\network folderSharedfilesecure.mdb;Jet OLEDB:Database Password=somepassword;Persist Security Info=true;";
using (OleDbConnection oledbConnection = new OleDbConnection(connectionString))
{
connection.Open(); // Getting exception here
}
我在上面的回复的帮助下修复了这个问题
服务运行在x64位,需要安装AccessDatabaseEngine_x64.exe驱动程序。我的机器上有32位的office。
附加步骤
。首先从注册表"HKLMSOFTWAREMicrosoftOffice14.0CommonFilesPaths"中删除mso.dll项
b。从您的设置位置使用命令提示符安装AccessDatabaseEngine_x64.exe/passive/quiet