Microsoft.Ass.OLEDB.12.0-provider ist nicht registriert
-
04-07-2019 - |
Frage
Ich habe eine Visual Studio 2008-Lösung mit zwei Projekten (Word-Vorlage-Projekt und eine VB.Net Konsolenanwendung zum testen).Sowohl Projekte als Referenz-ein Datenbank-Projekt öffnet eine Verbindung zu einem MS-Access 2007-Datenbank-Datei und Verweise auf System.Daten.OleDb.In der Datenbank Projekt habe ich eine Funktion, die ruft eine Datentabelle wie folgt
private class AdminDatabase
' stores the connection string which is set in the New() method
dim strAdminConnection as string
public sub New()
...
adminName = dlgopen.FileName
conAdminDB = New OleDbConnection
conAdminDB.ConnectionString = "Data Source='" + adminName + "';" + _
"Provider=Microsoft.ACE.OLEDB.12.0"
' store the connection string in strAdminConnection
strAdminConnection = conAdminDB.ConnectionString.ToString()
My.Settings.SetUserOverride("AdminConnectionString", strAdminConnection)
...
End Sub
' retrieves data from the database
Public Function getDataTable(ByVal sqlStatement As String) As DataTable
Dim ds As New DataSet
Dim dt As New DataTable
Dim da As New OleDbDataAdapter
Dim localCon As New OleDbConnection
localCon.ConnectionString = strAdminConnection
Using localCon
Dim command As OleDbCommand = localCon.CreateCommand()
command.CommandText = sqlStatement
localCon.Open()
da.SelectCommand = command
da.Fill(dt)
getDataTable = dt
End Using
End Function
End Class
Wenn ich rufe diese Funktion von meinem Word 2007-Vorlage-Projekt funktioniert alles einwandfrei;keine Fehler.Aber wenn ich es aus der Konsole-Anwendung, die es wirft die folgende Ausnahme
ex = {"Der 'Microsoft.Ass.OLEDB.12.0' provider ist nicht registriert der lokalen Maschine."}
Beide Projekte haben die gleiche Referenz und die Konsole Anwendung hat funktioniert, wenn ich zuerst es geschrieben (vor einer Weile), aber jetzt hat es aufgehört zu arbeiten.Ich muss etwas vermissen, aber ich weiß nicht, was.Irgendwelche Ideen?
Lösung
Ich habe ein Visual Basic-Programm mit Visual Studio 2008, die eine Access 2007-Datenbank verwendet und wurde mit dem gleichen Fehler zu erhalten. Ich fand einige Threads, die die erweiterte Kompilierung Konfiguration riet Wechsel in den Programmen gefundenen Objekten X86, wenn Sie ein 64-Bit-System laufen lassen. Bisher habe ich keine Probleme mit meinem Programm, da hatte.
Andere Tipps
Grundsätzlich, wenn Sie auf einer 64-Bit-Maschinen sind, IIS 7 nicht (standardmäßig) 32-Bit-Anwendungen dienen, die der Datenbank-Engine arbeitet auf. So, hier ist genau das, was Sie tun können:
1) sicherzustellen, dass der 2007-Datenbank-Engine installiert wird, kann dies unter folgenden Adresse heruntergeladen werden: http://www.microsoft.com /downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
2) offen IIS7 Manager und öffnen Sie die Anwendungspools Bereich. Auf der rechten Seitenleiste finden Sie eine Option, die „Set-Anwendungspool defaults“ sagt. Klicken Sie darauf, und ein Fenster mit den Optionen eingeblendet.
3) nach unten das zweite Feld, das ‚Enable 32-Bit-Anwendungen‘, sagt wahrscheinlich standardmäßig auf FALSE gesetzt. Klicken Sie einfach auf, wo es heißt ‚falsch‘, es zu ändern auf ‚true‘.
4) Starten Sie Ihren app-Pool (Sie können dies tun, indem RECYCLE schlagen statt STOPP dann START, die auch funktionieren).
5) durchgeführt, und Ihre Fehlermeldung weggeht.
Sind Sie mit einem 64-Bit-System mit der Datenbank 32 Bit läuft, aber die Konsole mit 64 Bit? Es sind keine Treiber MS Access, die 64-Bit laufen und einen Fehler identisch mit dem Bericht würde Ihre berichtet.
Lösung:
Das ist es! Dank Arjun Paudel für den Link. Hier ist die Lösung als auf XNA Creator Club Online gefunden. Es ist von Stephen Styrchak.
Der folgende Fehler schlägt mich zu glauben, dass Sie für 64-Bit kompilieren:
Der ‚Microsoft .ACE.OELDB.12.0‘ Anbieter ist nicht auf dem lokalen Computer registriert
ich nicht Express Edition haben, sind aber folgende Schritte gültig im Jahr 2008 Express?
http://forums.xna.com/forums/t/4377 aspx # 22601
http://forums.xna.com/forums/p/4377/ 22601.aspx # 22601
Ich dachte, ich würde erwähnen, denn ich fand diese Frage, wenn Sie vor einem etwas anderen Kontext das problem und dachte, es könnte helfen Sie anderen gequälten Seelen in die Zukunft:
Ich hatte eine ASP.NET app hosted on IIS 7.0 unter Windows Server 2008 64-bit.
Da IIS ist in die Steuerung des Prozesses Bitanzahl, die Lösung in meinem Fall war, die Enable32bitAppOnWin64-Einstellung auf true:http://blogs.msdn.com/vijaysk/archive/2009/03/06/iis-7-tip-2-you-can-now-run-32-bit-and-64-bit-applications-on-the-same-server.aspx
Es funktioniert etwas anders in IIS 6.0 (Sie können nicht Enable32bitAppOnWin64-an-Anwendung-pool-Ebene) http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0aafb9a0-1b1c-4a39-ac9a-994adc902485.mspx?mfr=true
Ich habe gleiches Problem. Ich versuche Office 2010 64-Bit-Windows 7 64-Bit zu installieren und dann 2007 Office System installieren Driver:. Data Connectivity-Komponenten
nach, dass Visual Studio 2008 kann öffnet eine Verbindung zu einer MS-Access 2007 Datenbank-Datei.
Siehe meinen Beitrag auf einem ähnlichen Stapel Exchange-Thread https://stackoverflow.com/a/21455677/1368849
Ich hatte Version 15, nicht 12 installiert, die ich durch Ausführen dieses Powershell-Code herausgefunden ...
(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
..., die mir dieses Ergebnis gab (ich andere Datenquellen aus Gründen der Kürze entfernt haben) ...
SOURCES_NAME SOURCES_DESCRIPTION
------------ -------------------
Microsoft.ACE.OLEDB.15.0 Microsoft Office 15.0 Access Database Engine OLE DB Provider
Ich habe den gleichen Fehler auf eine vollständig aktualisierten Windows Vista 64-Bit-Familie mit einer .NET-Anwendung, die ich auf 32-Bit nur kompiliert haben - das Programm im programx86 Ordner auf 64-Bit-Maschinen installiert ist. Es schlägt mit dieser Fehlermeldung auch bei 2007 Access-Datenbank-Provider installiert, mit / WIOTHOUT der SP2 von den gleichen installiert, IIS installiert und App-Pool für 32-Bit-app Unterstützung eingestellt ... ja, ich habe jede Lösung überall und immer noch keinen Erfolg versucht.
habe ich meine App ACE OLE DB.12.0 weil JET4.0 auf 64-Bit-Maschinen versagt - und es ist nicht besser: - / Der vielversprechendste Thread ich gefunden habe, war dies:
http://ellisweb.net/2010/01/connecting-to-excel-and-access-files-using-net-on-a-64-bit-server/
aber wenn Sie versuchen, die 64-Bit „2010 Office System Driver Beta: Data Connectivity-Komponenten“ zu installieren, es sagt Ihnen, dass Sie die 64-Bit-Version Anwendungen ohne Deinstallation alle 32-Bit-Office installieren kann ... und die Installation der 32-Bit Version von 2010 Office System Driver Beta: Datenkonnektivitätskomponenten lösen nicht das ursprüngliche Problem, auch mit „Microsoft.ACE.OLEDB.12.0“ als Anbieter anstelle von „Microsoft.ACE.OLEDB.14.0“, die die Seite (und andere) empfehlen.
Mein nächster Versuch wird seinen Beitrag folgen:
Das Problem ist, wegen des falschen Geschmack von OLEDB32.DLL und Oledb32r.dll auf dem Server registriert werden. Wenn die 64-Bit-Versionen registriert sind, müssen sie nicht registriert sein, und dann stattdessen die 32-Bit-Versionen registriert. Um dies zu beheben, Aufheben der Registrierung der lokalisierten Versionen in% Programfiles% / Gemeinsame Dateien / System / OLE DB. Dann registrieren Sie die Versionen auf dem gleichen Weg, aber im Verzeichnis% Program Files (x86)% Verzeichnis.
Hat jemand hatte so viel Mühe mit beiden JET4.0 und OLEDB ACE-Anbieter auf 64-Bit-Maschinen? Hat jemand eine Lösung, wenn keine der anderen zusammenarbeiten gefunden?
Ich gehe davon aus, dass, wenn Sie ein 64-Bit-System mit einer 32-Bit-Datenbank ausführen und versuchen, eine 64-Bit-Konsole ausgeführt werden, die folgenden Pakete müssen auf dem Rechner installiert werden.
- Installieren Sie die Microsoft Access-Datenbank-Engine 2010 x86 Verteilbare ist diese Installation finden Sie unter: http://www.microsoft.com/download/en/details.aspx ? id = 13255 .
- Data Connectivity-Komponenten von Office 2007, diese Installation verfügbar um: http://www.microsoft.com/download/en/confirmation.aspx ? id = 23734 .
- Microsoft Access-Datenbank-Engine 2010 x64 Redistributable. Du wirst muß das Paket lokal und führen Sie es mit einem passiven Flagge zum Download bereit. Sie können die Installation hier herunterladen: http://www.microsoft.com/en-us/download /details.aspx?id=13255 Installieren der Eingabeaufforderung mit dem ‚/ passiv‘ Flag verwendet. In dem Eingabeaufforderung den folgenden Befehl ein: 'AccessDatabaseEngine_x64.exe / passiv'
Hinweis: Die Reihenfolge der Materie scheint - so, wenn Sie etwas bereits installiert haben, deinstallieren und befolgen Sie die oben genannten Schritte
.