Microsoft.Jet.OLEDB.4.0 provider is not registered hatası çözümü

Kullandığınız işletim sistemi 64 bit ise ve siz Access yada Excel e bağlanan bir uygulama yazdıysanız muhtemelen şöyle bir hata alacaksınız.

“The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine.”

Eğer uygulamanız web uygulaması ise:

IIS 7 ve üzeri 64 Bit Kullananlar : (Test edildi bu şekilde sorun çözülmektedir)

IIS üzerinde şu ayarları yapmalısınız. IIS Yönetim panelinden Application Pools ta sizin uygulamanızın pool ayarlarından -> Advanced Settings -> Enable 32-Bits Applications değerini True olarak değiştiriniz.

“Kaynak : http://blog.nkadesign.com/2008/windows-2008-the-microsoftjetoledb40-provider-is-not-registered-on-the-local-machine/”

 

 

IIS 6 – 64 Bit Kullananlar : (IIS6 -64 bit için anlatılanlar tarafımdan test edilmemiştir ancak test eden diğer insanlar bu şekilde çözüldüğünü söylemektedir)

Öncelikle asp.net 2.0 32 bit versionu iis e yükleyin. Aşağıdaki örnekteki gibi.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

32 bit uygulama desteğini aşağıdaki komut ile açın.

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

IIS te yeni bir Application Pool oluşturun. Uygulamanızın bu pool da çalışması için uygulamanızın properties bölümünden Home Directory -> Application Pool olarak biraz önce açtığınız Pool u atayın.  Configuration butonuna tıklayın ve Extension Mappings bölümünde bütün uzantılar için “C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll” olan dizin ayarlarını “C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll” olarak değiştirin.

Web service extension list bölümünden ASP.NET version 2.0.50727 (32-bit) eklentisine izin verin.

“Kaynak : Ken Tucker – MVP”

 

 

Eğer uygulamanız windows uygulaması ise: Aşağıdaki şekilde Platform target seçeneğini x86 olarak değiştirirseniz sorun düzelecektir.

 

 

 

Güncelleme (19.12.2011) :

Bu yazı ilk yazıldığı tarihte Microsoft tarafından önerilen bir çözüm bulunmuyordu. Office uygulamasının 64 bit sürümünün olmamasından kaynaklanan bu sorunun çözümü için  Microsoft Access Database Engine 2010 Redistributable eklentisinin yayınlandığını gördüm. Eğer uygulamayı siz yazmadıysanız yukarıdaki yöntemler ile bu sorunu çözemeyeceksiniz. O zaman aşağıdaki linkten gerekli olan eklentiyi yükleyerek çözebilirsiniz.

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255

 

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestShare on RedditDigg thisEmail this to someonePrint this page

Post Author: mustafaozcan

Microsoft.Jet.OLEDB.4.0 provider is not registered hatası çözümü” için 32 yorum

  • h.iskender

    (23 Mart 2009 - 23:03)

    Merhaba Musatafa bey anlattığınız şeyler çok işimize yaradı, Çok Teşekkür ediyoruz.

  • Koray

    (3 Nisan 2009 - 03:08)

    Bu sorunla karşı karşıyayım ancak IIS'de Application Pool u bulamadım . Benim sorunum şu şekilde :

    Excel'den ADO.NET ile veritabanına import işlemi yapıyorum. Localimde office 2003 ve XP Pro kurulu ve sorunsuz çalışıyor .

    Servera yüklediğimde aşağıdaki hatayı veriyor.Office 2007 yerine 2003 kurduk. ve Windows 2003 Server kurulu.
    The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

    Yabancı kaynaklarda WindowsServer2003-KB829558-ia64-ENU.exe programını kurun diyor kurmaya çalıştığımda bu tip bir makinaya kuramazsınız diyor.
    Serverım : Microsoft Windows Server 2003 R2 Enterprise x64 Edition Service Pack 1

  • Mustafa ÖZCAN

    (3 Nisan 2009 - 10:44)

    @Koray : Yukarıdaki anlatım sadece IIS 7 ve üzeri içindi fakat sizin yorumunuzu görünce IIS 6 – 64 bit için de bir çözüm önerisi buldum. Kendim test etmedim, sanırım o şekilde probleminiz çözülebilir. Bu yöntem ile aldığınız sonucu yorum olarak bildirirseniz ihtiyaç duyan diğer insanlar daha fazla aramak zorunda kalmazlar. Teşekkürler.

  • yusuf karpajk

    (7 Nisan 2010 - 21:43)

    kardeş sorun çözüldü ellerine sağlık vallaha çoooook sağolasın

  • semra

    (28 Nisan 2010 - 13:25)

    merhaba ben bır program uzerınde calışmaktayım programı c# ta yapıyorum fakat 'Microsoft.Jet.oledb.4.0' sağlayıcısı yerel makine kayıtlı değil hatası verıyor bır cok sıtede sızın gosterdıgınız cozumu buldum ve denedım ama benım programımda soyledıgınız kısım yok yanı platform target kısmı gorunmuyor ayrıca yaptıgım baglantı da calısmıyor yardım edebılırmısınız cok acıl:((((

  • Mustafa ÖZCAN

    (29 Nisan 2010 - 14:26)

    Uygulamanız windows forms uygulaması mı? ve Visual Studio hangi sürüm kullanıyorsunuz?

  • kubi

    (6 Mayıs 2010 - 11:00)

    tam 2 gündür bu sorunu arıyordum aralıksız!.. ne kadar teşekkür etsem az, çok işimi gördü çok teşekkürler.

  • eyüp

    (21 Haziran 2010 - 03:51)

    Teşekkür ederim kardeşim.Vista kullanıcısıyım. İki aydan beri(Windows uygulamalarında) bu hata ile uğraşıyordum.Göstermiş olduğunuz çözüm önerisi işime yaradı.

  • Hüseyin ÖZÇAKIR

    (18 Ağustos 2010 - 06:28)

    Windows 7 64 Bit Türkçe;
    //string _CnnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=HC_PatronCep.accdb";
    //string _CnnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\HC_PatronCep.accdb;Persist Security Info=True";
    //string _CnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\HC_PatronCep.mdb;Persist Security Info=True";
    //string _CnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=HC_PatronCep.mdb;Persist Security Info=True";
    //string _CnnString = @"provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\HC_PatronCep.mdb;";
    string _CnnString = @"provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\HC_PatronCep.mdb;";

    ancak burada anlatılan x86 (build , proje özelliklerinden) çözüldü. teşekkürler..

  • ali

    (11 Ekim 2010 - 16:35)

    hocam winwods 7 64 bit işlemcili bir makinede windows application uygulamasında nasıl çözebiliriz. uygulamanız windows sa aşagıdaki gibi değiştirin demişsiniz ama değişne bise yok

    ben su sekilde yazdım
    yol = "Provider = Microsoft.ACE.OLEDB.12.0;DataSource =" + Application.StartupPath + "\okul.accdb;persist SecurityInfo =true;"
    şimdiden teşekkürler

  • Mustafa ÖZCAN

    (11 Ekim 2010 - 22:06)

    Proje ayarlarından x86 sistemlerde çalışacak şekilde derlenmesi ayarını yaptıysanız ve uygulamayı bu şekilde derleyip denediyseniz sorununuzun çözülmesi gerekir.

  • hakan

    (29 Ocak 2011 - 00:48)

    kardesim Allah razı olsun senden kafayı sıyırmıştım bu yüzden. bi de bi sorum olacak, bu programım setup tan sonra xpde de çalışır mı yoks bu düzenlemeden dolayı sadece win 7 de mi çalışır?

  • Mustafa ÖZCAN

    (30 Ocak 2011 - 15:23)

    x86 olarak derlerseniz 32 bit Windows XP de de sorunsuz çalışır.

  • hakan

    (31 Ocak 2011 - 22:43)

    kardeş çok dua ettim hakkını helal et çok saol

  • Süleyman KARAGÖZ

    (20 Şubat 2011 - 07:34)

    Selam arkadaşlar
    Peki projenizi "ClickOnce" ile publish ettiğiniz zaman 64 bit işletim sisteminde aynı hatayı verecek olursa ne yapacaksınız. Ben bunu çözemedim. Yardımcı olursanız sevinirim. ClickOnce ile yapılan publishde sisteme dll dosyaları şeklinde kaydedip başlat menüsüne kısayol koyuyor. ortada exe dosyası yok yani, eğer olsa uyumluluk modunu devreye sokabileceğiz… Saygılar

  • Mustafa ÖZCAN

    (20 Şubat 2011 - 10:56)

    x86 olarak derlerseniz sorun olmayacaktır.

  • yasin

    (11 Mart 2011 - 02:15)

    ben 32 bit win7 kullanıcısıyım access 2007 bağlantısında sorun yaşadım
    The 'Microsoft.Jet.OLEDB.12.0' provider is not registered on the local machine.

    hatası alıyorum:(:(

  • Erdogan

    (14 Mart 2011 - 16:52)

    Sorun cozuldu ellerine saglik

  • tunç olçay

    (8 Mayıs 2011 - 01:38)

    eline sağlık 😉

  • abdullah caldir

    (11 Mayıs 2011 - 21:52)

    arkadaslar benim sorunum
    Unrecognized database format 'C:UsersDELLDocumentsVisual Studio 2008Projectsoupsssoupsssbinx86Debugdatabase.mdb'.
    denilenin herseyi yaptim
    msn adresim zelenkanew01@hotmail.com
    skype = zelenkanew01
    bir ara yaptim bu tekrar hata aliyorum admin ne olur silmeyin msn adresini

  • Büşra

    (20 Mayıs 2011 - 00:27)

    arkadaslar ben 64 bit windows 7 kullanıyorum. access 2010 baglantısında sorun yasıyorum.ne yapabilirim?

  • hotmail

    (27 Ağustos 2011 - 16:26)

    Sorun cozuldu ellerine saglik

  • hasan

    (26 Eylül 2011 - 17:10)

    Allah razı olsun yav çözdü valla 🙂

  • Nadir

    (19 Aralık 2011 - 10:01)

    kolay gelsin;

    elimde bir program var programın hem 32 hem 64bitlik kurulum dosyaları var bende. win7 x64 kullanıyorum. ancak hangisini kurarsam kurayım aynı hatayı alıyorum. jetoledb denen paketi win7 içine ekleme gibi bi durum söz konusu olamaz mı ?

  • Mustafa ÖZCAN

    (19 Aralık 2011 - 22:24)

    Merhaba bu yazıyı yazdığımda Microsoft un bu konuda bir çözümü yoktu. Bu hatanın nedeni Office uygulamasının x64 sürümünün olmamasından kaynaklanmakta idi. Microsoft bu soruna çözüm bulabilmek için Microsoft Access Database Engine 2010 Redistributable paketini yayınlamış hem 32 bit hemde 64 bit sürümleri mevcut. Bu linkten indirebilirsiniz: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255

  • Muzaffer

    (14 Nisan 2012 - 20:27)

    Hakikaten Çözüme tam isabet bir yöntem. 64 bit işletim sistemimde su hata oluşmuştu.Fakat şu an durum sorunsuz. Veri tabanı bağlantım düzgün şuan.
    Teşekkürler.

  • Muzaffer

    (14 Nisan 2012 - 20:41)

    veritabanını (.mdb) uzantılı olarak kayıt edin. Bende Acces 2010 kullanıyorum.Seçeneklerden Dosya biçimini 2002-2003 formatını ayarlarsın sorun kalmaz. Acces 2010 accdb uzantılı olarak veritabanı oluşturur.

  • tamirciciragi

    (7 Mart 2013 - 13:34)

    Teşekkürler Mustafa Bey
    bu arada visual studio 2012 için
    project properties -> compile sekmesinde
    prefer 32-bit seçeneğini işaretleyebilirsiniz

  • aratirmaci

    (22 Temmuz 2013 - 14:36)

    cok tesekkurler isime yaradi tr karakterleri gormedigi icin bole yazdım. turkcem sorun cikarmaz insh

  • misafir19

    (14 Şubat 2017 - 19:44)

    Çok teşekkürler 1 numara ile hallettim

  • Hakan

    (20 Eylül 2017 - 17:54)

    Merhaba,
    Windows 10 64bit makinada windows forms ile ayni sorunu aliyorum.
    Projeyi x86 olarak dediginiz gibi degistirdim ama cozum olmadi.
    Access 97 ya da 2000 ile yapilmis bir “*.mdb” dosyasina baglanmaya calisiyorum.
    baska bir oneriniz var mi?

    • mustafaozcan

      (15 Ekim 2017 - 11:12)

      Microsoft Access Database Engine kurmayı denediniz mi?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir