Microsoft.Jet.OLEDB.4.0 'Anbieter ist nicht auf dem lokalen Computer registriert
Erstellte ich eine windows-Anwendung entwickelt .NET 3.5 in einem 32-bit Windows 2008 server. Bei der Bereitstellung der Anwendung in einer 64-bit-server zeigt die Fehlermeldung "von Microsoft.Jet.OLEDB.4.0' - provider ist nicht registriert, auf die lokale Maschine ".
Also als Lösung für dieses Problem, habe ich geändert in der build-Eigenschaft des Projekts auf X86, so dass es bauen wird in 32 bit-Modus, und erstellen Sie das Projekt neu in der 32bit-Maschine. Aber, das gleiche Projekt mit anderen DB-Treiber (DB2, SQL etc.) eine Verbindung zu anderen Datenbanken. Also, wenn ich eingesetzt, meine app wieder in den 64-bit-OS, wirft er die exception " Versuch zum laden eines 64-bit-assembly auf einer 32-bit-Plattform. "
Ich bin mit dem Microsoft.Jet.OLEDB.4.0-Treiber zum Lesen und schreiben von Excel (.xls)
InformationsquelleAutor der Frage neo | 2010-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe eine Lösung gefunden für dieses problem. Das Problem, das ich beschrieben in meiner Frage, ereigneten sich im Grunde aufgrund der Inkompatibilität der Microsoft.Jet.OLEDB.4.0 Treiber in 64-bit-OS.
So, wenn wir über Microsoft.Jet.OLEDB.4.0-Treiber in einer 64-bit-server, wir haben uns zu zwingen, unsere Anwendung zu bauen, die in 32-bit-Modus (Dies ist die Antwort, die ich fand, als ich habe eine umfangreiche Suche nach diesem bekanntes Problem) und andere Ursachen Teil von meinem code zu brechen.
Zum Glück, jetzt hat Microsoft eine 64-bit-kompatibel 2010 Office System-Treiber die verwendet werden können, als Ersatz für die traditionellen Microsoft.Jet.OLEDB.4.0-Treiber. Es funktioniert sowohl in 32 bit als auch als 64-bit-Servern. Ich habe es verwendet für die Excel-Datei manipulation und es funktionierte gut für mich in beiden Umgebungen.Aber dieser Treiber ist in BETA.
Können Sie herunterladen Treiber aus Microsoft Access Database Engine 2010 Redistributable
InformationsquelleAutor der Antwort neo
Wenn das Problem bestehen ASP.NET Alles,was ich zu tun hatte war, ändern Sie die "Enable 32-bit Applications" - Einstellung auf True, in den Erweiterten Einstellungen für den Anwendungspool.
InformationsquelleAutor der Antwort Jason Wicker
Ich habe das gleiche problem
Bewarb ich mich der Antwort von neo aber es hat nicht funktioniert, bis ich den provider wechseln zu “Provider=Microsoft.Ass.OLEDB.12.0;" in der Verbindungszeichenfolge.
Hoffe, dies wird helfen, wenn jemand vor den gleichen Problem.
InformationsquelleAutor der Antwort Iqbal
Habe ich die gleiche Meldung, ich habe eine Webseite mit auf visual studio 2010, habe ich gelesen file.xls auf dieser Seite,in meinem Projekt visual hat keine problem, wenn ich es auf meinem lokalen IIS werfen Sie mir eine 'von Microsoft.Jet.OLEDB.4.0' - provider ist nicht registriert auf der lokalen Maschine'
Ich fixe das problem das nächste nach diesem Schritte,
1.-Öffnen Sie den IIS
2.-Ändern der "appPool" auf Erweiterte Einstellungen
3.-stimmt zu aktivieren, um 32-bit-Anwendung.
und das ist alles
ps.Ich änderte Konfigurations-Manager, um X86 auf Aktive projektmappenplattform
InformationsquelleAutor der Antwort leo
Ich weiß, es ist eine ziemlich alte Fragen und viele Personen hat geantwortet. aber ich bin der Zusammenfassung der Dinge, die für das Verständnis:
Wenn die Datei-Endung ist xls und OS ist 32 bit, dann nur Sie können die "
Microsoft.Jet.OLEDB.4.0
". Microsoft hat nicht veröffentlicht 64-bit-version dieses Treibers.Wenn die Dateierweiterung xlsx-oder OS ist 64 bit, dann müssen Sie "
Microsoft.ACE.OLEDB.12.0
". Die kompilierte Anwendung in der 32/64-bit-Modus hat keine Auswirkung auf die Auswahl der Fahrer.Immer installieren Sie die 64-bit-Treiber von
Microsoft.ACE.OLEDB.12.0
auf OS 64 bit. Wenn Sie Office bereits installiert, 32 bit, dann Sie ausführen müssen, um den Treiber von cmd mit /passiv-argument.Herunterladen von Treibern von Microsoft.Ass.OLEDB.12.0
InformationsquelleAutor der Antwort Romil Kumar Jain
Wenn Ihre Anwendung läuft auf localIIS, können Sie dieses problem lösen, indem aktivieren der 32-bit-Anwendungen in AppPool ist Erweiterte Einstellungen
InformationsquelleAutor der Antwort Mumin Ka
Ich hatte das gleiche Problem. Ich änderte die Konfiguration der Anwendung zu
x86
dann hat es geklappt!InformationsquelleAutor der Antwort Kakopappa
Ich habe gerade meine-Eigenschaft Projekt in die x64-format
Projekt---> Eigenschaften--->Build--->Ziel-Framework---> X64
InformationsquelleAutor der Antwort Muhamed Shafeeq
Ich lief in dieses Problem mit meinem desktop-Anwendung ("Microsoft.Jet.OLEDB.4.0' - provider ist nicht registriert auf der lokalen Maschine). Ich habe nicht die Möglichkeit zu bauen als 32-bit app. In der Hoffnung, dies würde helfen, andere in der gleichen situation.
Ich Folgendes gemacht und das Problem ging Weg:
Installiert die 64-bit-version von Microsoft Access Database Engine
2010 Redistributable, wie vorgeschlagen, durch die neo
Veränderte mein provider auf Microsoft.Ass.OLEDB.12.0
InformationsquelleAutor der Antwort robinhood9
Änderung in die IIS-Einstellungen für Anwendungspool "erweiterte Einstellungen".Aktivieren der 32-bit-Anwendung
InformationsquelleAutor der Antwort dpsrikanth
Ändern Sie einfach die Eigenschaft basierend auf Ihrem Rechner und haben alle getan 🙂
Projekt---> Eigenschaften--->Build--->Ziel-Framework---> X64
oder
Projekt---> Eigenschaften--->Build--->Ziel-Framework---> X86
InformationsquelleAutor der Antwort Ajmal
Habe ich eine andere Verbindungszeichenfolge aus
var myConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Persist Security Info=True;Jet OLEDB:Database Password=;",gisdbPath);
:
var myConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Mode=Share Verweigern Keine;Data Source={0};user id=Admin;password=;", gisdbPath);
Es funktioniert fro mich nie gefragt, für Microsoft.Jet.OLEDB.4.0'registered.
InformationsquelleAutor der Antwort Dilhan RK
Haben wir kommen auf dieses Problem in der desktop-app.
Dev-Umgebung:
Windows 7 Ultimate - 64 bit
.Net Framework 4.5
Provider=Microsoft.Jet.OLEDB.4.0
Es wurde gelöst, indem-Plattform Ziel auf X 86 aus Jeder CPU.
Projekt-Eigenschaften - >> Build >> Plattform Ziel.
InformationsquelleAutor der Antwort Techvalens
Es ist in der Tat keine 64-bit-version von Jet - und keine Pläne (scheinbar) zu produzieren.
Können Sie möglicherweise verwenden Sie den ACE-64 bit Treiber:
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=23734
Jedoch können Sie in der Lage, schalten Sie das Projekt zu 32 bit in der Express-version (ich habe nicht versucht und nicht 2008 installiert in jedem Geschmack mehr)
http://xboxforums.create.msdn.com/forums/t/4377.aspx#22601
Vielleicht ist es Zeit, Sie zu verschrotten, Access-Datenbanken insgesamt, den sauren Apfel beißen und gehen für SQL server statt?
InformationsquelleAutor der Antwort Anant Dabhi
Ich bin mit VS2013 für Winforms, die unterhalb Lösung für mich gearbeitet.
Download : http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=23734
Dann Set VS Zielplattform auf x86.
InformationsquelleAutor der Antwort A Ghazal
In älteren Versionen von IIS, die Sie nicht finden
Advance Settings
so aktivierenEnable 32-bit Applications
müssen Sie folgende Befehle ausführen:cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
und
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -ich
Referenz : Hier
InformationsquelleAutor der Antwort Usman Khalid
War ich immer dieselbe exception während der Ausführung von "SQL-Server-2014-Import-und Export-Daten (64-bit)" auf meinem Windows 8.1.
Um das Problem zu beheben dieses Problem habe ich Folgendes getan
begann SQL-Server-2014-Import-und Export-Daten (32-bit) anstelle von 64-bit - und es funktioniert für mich. Ich habe nicht geändert, IIS-Einstellungen und nicht installiert, keine extra software.
InformationsquelleAutor der Antwort Banketeshvar Narayan
Ich weiß, dass ich dieses problem immer und immer, wenn ich die Bereitstellung der Anwendung auf einem neuen server, denn ich bin mit diesen Treiber, um eine Verbindung zu einer Excel-Datei. Hier ist es also, was ich Tue in letzter Zeit.
Gibt es ein Windows Server 2008 R2 ausgeführt wird, installieren Sie die Access-Treiber für ein x64-bit-Maschine und ich loswerden von dieser Nachricht, die macht mich sehr glücklich, nur stoßen in ein anderes.
Hier unten funktioniert prächtig auf meiner dev Maschine, sondern auf dem server gibt mir eine Fehlermeldung auch nach der Installation der neuesten ODBC-Treiber, die ich denke, das ist das problem, aber das ist, wie ich es gelöst.
Ich ersetzen Sie mit dem neuen Anbieter, wie weiter unten:
Aber als ich dies tun, gibt es eine Sache, die Sie beachten sollten. Mit Hilfe der .xlsx-Datei-Erweiterung und Excel-version ist 12.0.
Nachdem ich Sie in dieser Fehlermeldung Fehler: "Installierbares ISAM Nicht gefunden"beschließe ich, die Dinge ein bisschen so aus wie unten:
und ja, ich bin fertig mit das böse Ding, aber hier bekam ich noch eine Nachricht Microsoft Access-Datenbankmodul kann nicht öffnen oder schreiben der Datei 'time_zone'. Es ist bereits exklusiv geöffnet, die von einem anderen Benutzer, oder Sie benötigen die Berechtigung zum anzeigen und schreiben Ihrer Daten. die mir sagt, ich bin nicht weit Weg von der Lösung.
Vielleicht gibt es einen anderen Prozess, der die Datei geöffnet hat, und mittlerweile alles, was ich tun müssen, ist ein Neustart und alle nehmen start reibungslos läuft, wie erwartet.
InformationsquelleAutor der Antwort Nick
Obwohl eine optimale Lösung ist, einfach neu kompilieren wie oben angedeutet, erfordert der Zugriff auf den Quellcode. In meinem Fall musste ich nur die fertig .exe und musste diese Lösung verwenden. Es nutzt
CorFlags.exe
aus .Net SDK zum ändern der laden Merkmalen der Anwendung.CorLibs.exe
check es einfach Windows-Entwicklungs-Tools.CorFlags.exe
. Für meine Installation .Net Framework 3.5 SDK, es war anC:\Program Files\Microsoft SDKs\Windows\v7.0\Bin
.path/to/CorFlags.exe path/to/your/exeFile.exe /32Bit+
.Fertig! Dies setzt die Start-flags, die für Ihr Programm so, dass es beginnt im 32-bit-WOW64-Modus, und kann somit Zugriff auf microsoft.jet.oledb.4.0.
InformationsquelleAutor der Antwort Cullub
Gibt es nicht eine 64-bit-provider für Jet. Wenn Sie möchten, unterstützt mehrere DB-Quellen, einschließlich Jet Excel müssen Sie zumindest diesen Teil Ihrer Anwendung für die Ausführung im 32-bit-Prozess.
Die Fehlermeldung, die Sie bekommen, wenn Sie kompilieren für x86 ist ein bisschen seltsam. Ich kann nicht sehen, wie Sie landen würde, referenzieren 64-bit-Assemblys in diesem Fall.
InformationsquelleAutor der Antwort AnthonyWJones
Die einfachste Lösung ist, gehen Sie in die Projekt-Eigenschaften und stellen Sie Ihre build-Ziel zur x86-von Jedem CPU.
InformationsquelleAutor der Antwort Cyril Gupta