未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序

简介:

最近有一个项目Microsoft.Jet.OleDb,主要用于从Excel中导入数据,在调试阶段一直是正常的。但一部署到客户的环境中(Windows Server 2008 R2 + Server 2000 + IIS7)导入数据的功能就出现问题了

其错误如下:

System.InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序。
   在 System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
   在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.OleDb.OleDbConnection.Open()
   在 ExcelOperation.ImportFromExcel(String fileName, String strSql)
   在 Retiree_ImportData.btnImport_Click(Object sender, EventArgs e)
   在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

后来了解到客户的操作系统为64位,通过IIS程序池设置中启用32位应用程序选项中设置为True,问题随即解决如下图:

另外如果不想更新IIS程序池的配置,也可以将程序编译成x86即可,具体请参考:

未能加载文件或程序集 XX 或它的某一个依赖项

 

============================================

2013-04-22

今天,又遇一个问题,同样是64位系统造成的,Windows Server 2003 64位,出现的错误同样为“未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序”,但解决的方法与Windows Server 2008 64位不太一样,具体步骤如下:

1、将以下脚本保存为bat,并运行:

cd %SYSTEMDRIVE%\WINDOWS\system32
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 
 
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i 

 2、重新案件.net framework2.0

 

问题搞定。

未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序

转载请注明出处[ http://samlin.cnblogs.com/] 
作者赞赏
 


刚做的招标网: 八爪鱼招标网 请大家多意见

本文转自Sam Lin博客博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2011/05/04/InvalidOperationException.html,如需转载请自行联系原作者
目录
相关文章
Error:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
问题现场: 解决方案: 生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86。 如下图所示: 参考文献: http://www.
1098 0
|
数据库 C++
未在本地计算机上注册 “Microsoft.Jet.OLEDB.4.0”提供程序“
今天在读取MDB数据库的时候,出现“Microsoft.Jet.OLEDB.4.0”提供程序”问题,Google了下找到了方法,我的是计算机是64,所以用最后一个搞定(从身边的小问题积累)需要注意的问题和解决方法:1.
1283 0
|
SQL 数据库
Microsoft SQL Server 2000数据还原
Microsoft SQL Server 2000还原数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server - 企业管理器(如图1-1)。
1432 0
|
SQL 数据库
Microsoft SQL Server 2000数据附加
Microsoft SQL Server 2000附加数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server - 企业管理器(如图1-1)。
1399 0
|
SQL 数据库 Windows
Microsoft SQL Server 2008数据还原
Microsoft SQL Server 2008还原数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server 2008 R2 - SQL Server Management Studio(如图1-1)。
1359 0
|
SQL 数据库 Windows
Microsoft SQL Server 2000数据库备份
Microsoft SQL Server 2000备份数据操作流程 1、开始 - 所有程序 - Microsoft SQL Server - 企业管理器(如图1-1)。
1517 0
|
SQL 监控 数据库
Microsoft SQL Server 2008清理LDF日志
Microsoft SQL Server 2008 LDF数据文件清理方法。 PS:由于该操作涉及数据库中的数据,请在操作前先做好数据备份。 准备:Microsoft SQL Server 2008清理LDF脚本,请点击下载获取。
2047 0
|
SQL 数据库 Windows
Microsoft SQL Server 2008修改混合模式
数据库身份验证SQL Server和Windows设置 1、开始 - 所有程序 - Microsoft SQL Server 2008 R2 - SQL Server Management Studio(如图1-1) 图 1-1 2、进入后会弹出窗口【连接到服务器】,在【身份验证】选择中【Windows身份验证】— 点击【连接】(如图1-2) 图 1-2 3、在数据库服务实例名(如图1-3,WIN-VQ5SKTLJ9EU\sql位置)点击鼠标右键【属性】。
1471 0
|
SQL 数据库 数据安全/隐私保护
Microsoft SQL Server 2008修改sa密码
数据库sa密码忘记处理方案 1、开始 - 所有程序 - Microsoft SQL Server 2008 R2 - 点击SQL Server Management Studio(如图1-1)。
2145 0