未在本機電腦上註冊“Microsoft.Jet.OleDb.4.0”提供者

來源:互聯網
上載者:User

最近有一個項目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\system32cscript %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”提供者

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.