zoukankan      html  css  js  c++  java
  • 未在本地计算机上注册“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”提供程序

  • 相关阅读:
    PAT (BL) 1001
    mysql启动报错:/usr/bin/mysqld_safe: line 183: 17006 Killed nohup /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin......
    动态规划:某个单词增加,删除,替换字母而成为另一个单词的最小变更次数?
    ng-class最好用的一种方法
    java数据结构基本框架
    后台运行tomcat和mysql的方法
    mysql无法开启,报错:MySQL Daemon failed to start.
    linux CentOS6.5 yum安装mysql 5.6
    idea mybatis报错:<statement> or DELIMITER expected, got 'id'
    angularjs $http与springmvc @RequestBody
  • 原文地址:https://www.cnblogs.com/samlin/p/InvalidOperationException.html
Copyright © 2011-2022 走看看