Microsoft.ACE.OLEDB.12.0 usługodawca nie jest zarejestrowany
Mam rozwiązanie Visual Studio 2008 z dwoma projektami (projekt Word-Template i VB.Net aplikacja konsolowa do testowania). Oba projekty odwołują się do projektu bazy danych, który otwiera połączenie z plikiem bazy danych MS-Access 2007 i ma odniesienia do systemu.Data.OleDb. W projekcie bazy danych mam funkcję, która pobiera tabelę danych w następujący sposób
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
Kiedy wywołuję tę funkcję z mojego projektu szablonu Word 2007 wszystko działa dobrze; bez błędów. Ale kiedy go uruchamiam z aplikacji konsolowej wyrzuca następujący wyjątek
Ex = {"Microsoft.ACE.OLEDB.12.0' usługodawca nie jest zarejestrowany na lokalna maszyna."}
Oba projekty mają to samo odniesienie i aplikacja konsolowa działała, kiedy ją pisałem (jakiś czas temu), ale teraz przestała działać. Muszę coś przeoczyć, ale nie wiem co. Jakieś pomysły?
9 answers
Mam program visual Basic z Visual Studio 2008, który korzysta z bazy danych Access 2007 i otrzymywał ten sam błąd. Znalazłem kilka wątków, które zalecały zmianę zaawansowanej konfiguracji kompilacji na x86 znalezioną we właściwościach programów, jeśli używasz systemu 64-bitowego. Do tej pory nie miałem żadnych problemów z moim programem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-04 15:54:45
Zasadniczo, jeśli korzystasz z komputera 64-bitowego, IIS 7 nie obsługuje (domyślnie) aplikacji 32-bitowych, na których działa silnik bazy danych. Więc tutaj jest dokładnie to, co robisz:
1) Upewnij się, że silnik bazy danych 2007 jest zainstalowany, można go pobrać na: http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
2) Otwórz Menedżera IIS7 i otwórz obszar pul aplikacji. Na prawym pasku bocznym zobaczysz opcję, która mówi "Ustaw domyślne ustawienia puli aplikacji". Kliknij go,a pojawi się okno z opcjami.
3) drugie pole w dół, które mówi 'Enable 32-bit applications' jest prawdopodobnie domyślnie ustawione na FALSE. Po prostu kliknij tam, gdzie jest napisane "false", aby zmienić go na "true".
4) Uruchom ponownie pulę aplikacji(możesz to zrobić, naciskając RECYCLE zamiast STOP, a następnie START, co również zadziała).
5) zrobione, a Komunikat o błędzie zniknie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-11 21:06:09
Czy używasz systemu 64-bitowego z bazą danych działającą 32-bitowo, ale konsola działa 64-bitowo? Nie ma sterowników MS Access, które działają 64-bitowo i zgłaszałyby błąd identyczny z tym, który zgłaszałeś.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-26 22:19:58
Rozwiązanie:
To jest to! Dzięki Arjun Paudel za link. Oto rozwiązanie znalezione na XNA Creator ' s Club Online. Autor: Szczepan StyrczakNastępujący błąd sugeruje mi wierzyć, że kompilujesz dla 64bit:
" Microsoft .ACE.OELDB.12.0 ' dostawca nie jest zarejestrowany na maszynie lokalnej
Nie mam express edition, ale są następujące kroki ważne w 2008 express?
Http://forums.xna.com/forums/t/4377.aspx#22601
Http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/ed374d4f-5677-41cb-bfe0-198e68810805/?prof=required
- Arjun Paudel
W VC# Express
tej właściwości nie ma, ale nadal możesz utworzyć konfigurację x86, jeśli wiesz, gdzie szukać.
VC# Express
prawdopodobnie uzna to za przydatne. Kiedy dowiesz się o Configuration Manager
, następnym razem będzie to o wiele bardziej intuicyjne.
1.In VC # Express 2005, przejdź do Tools -> Options
.
2.In w lewym dolnym rogu okna dialogowego Opcje zaznacz pole z napisem "Show all settings"
.
3.In widok drzewa po lewej stronie wybierz "Projects and Solutions"
.
4.In opcje po prawej stronie zaznacz pole z napisem, "Show advanced build configuraions."
5.Kliknij OK
.
6.Przejdź do Build -> Configuration Manager
...
7.In w kolumnie Platforma obok Twojego projektu kliknij combobox i wybierz "<New...>"
.
8.In "New platform" setting, choose "x86"
.
9.Kliknij OK
.
10.Kliknij Close
.
Teraz masz konfigurację x86! Łatwizna! :-)
Zalecam również użycie Configuration Manager
do usunięcia dowolnej platformy procesora. Naprawdę nie chcesz tego, jeśli kiedykolwiek miałeś depedencies na 32-bitowych natywnych bibliotekach DLL (nawet pośrednich zależnościach).
Stephen Styrchak / programista XNA Game Studio http://forums.xna.com/forums/p/4377/22601.aspx#22601
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-20 12:09:22
Pomyślałem, że się odezwę, bo znalazłem to pytanie w nieco innym kontekście problemu i pomyślałem, że może w przyszłości pomóc innym udręczonym duszom:
Miałem ASP.NET aplikacja hostowana na IIS 7.0 z systemem Windows Server 2008 64-bit.
Ponieważ IIS kontroluje bitowość procesu, rozwiązaniem w moim przypadku było ustawienie enable32bitapponwin64 na prawda: 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{[6]
To działa nieco inaczej w IIS 6.0 (nie można ustawić Enable32bitAppOnWin64 na poziomie puli aplikacji) http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0aafb9a0-1b1c-4a39-ac9a-994adc902485.mspx?mfr=true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-29 12:36:57
Mam ten sam problem. Próbuję zainstalować pakiet office 2010 64Bit na windows 7 64 bit, a następnie zainstalować sterownik systemu Office 2007: Komponenty łączności danych.
Następnie visual studio 2008 może otworzyć połączenie z plikiem bazy danych MS-Access 2007.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-04 14:38:22
Zobacz mój post w podobnym wątku Stack Exchange https://stackoverflow.com/a/21455677/1368849
Miałem zainstalowaną wersję 15, a nie 12, o czym dowiedziałem się uruchamiając ten kod PowerShell...
(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION
...co dało mi ten wynik(usunąłem inne źródła danych dla zwięzłości)...
SOURCES_NAME SOURCES_DESCRIPTION
------------ -------------------
Microsoft.ACE.OLEDB.15.0 Microsoft Office 15.0 Access Database Engine OLE DB Provider
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:33:23
Mam ten sam błąd na w pełni zaktualizowanym systemie Windows Vista 64bit z aplikacją. NET, którą skompilowałem tylko do 32 bitów - program jest zainstalowany w folderze programx86 na maszynach 64 bitowych. Nie powiedzie się z tym Komunikatem o błędzie nawet z zainstalowanym dostawcą bazy danych access 2007, z / wiathout SP2 tego samego zainstalowanego, zainstalowanym IIS i zestawem app pool dla obsługi aplikacji 32-bitowych... tak, próbowałem wszystkich rozwiązań wszędzie i nadal bez sukcesu.
Zmieniłem aplikację na ACE OLE DB.12.0 bo jet4.0 zawodził na maszynach 64bit - i nie jest lepiej: - / najbardziej obiecujący wątek jaki znalazłem to:
Http://ellisweb.net/2010/01/connecting-to-excel-and-access-files-using-net-on-a-64-bit-server/{[6]
Ale kiedy próbujesz zainstalować 64-bitowy "2010 Office System Driver Beta: Komponenty łączności danych", mówi ci, że nie możesz zainstalować wersji 64-bitowej bez odinstalowania wszystkich 32-bitowych aplikacji biurowych... i instalacja wersji 32 bitowej 2010 Office System Driver Beta: składniki łączności danych nie rozwiązuje początkowego problemu, nawet z " Microsoft.ACE.OLEDB.12.0 "jako dostawca zamiast" Microsoft.ACE.OLEDB.14.0", które ta strona (i inni) polecają.
Moją kolejną próbą będzie podążanie za tym postem:
Problem wynika z niewłaściwego smaku OLEDB32.DLL i OLEDB32r.DLL rejestracja na serwerze. Jeśli wersje 64-bitowe są zarejestrowane, muszą być niezarejestrowane, a następnie wersje 32-bitowe zarejestrowany zamiast. Aby to naprawić, Wyrejestruj wersje znajdujące się w %Program Files% / Common Files / System / OLE DB. Następnie zarejestruj wersje na tej samej ścieżce, ale w katalogu %Program Files (x86)%.
Czy ktoś jeszcze miał tyle problemów z dostawcami JET4. 0 i OLEDB ACE na maszynach 64 bitowych? Czy ktoś znalazł rozwiązanie, jeśli żaden z pozostałych nie działa?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-26 10:18:07
Zakładam, że jeśli używasz 64-bitowego systemu z 32-bitową bazą danych i próbujesz uruchomić 64-bitową konsolę, następujące pakiety muszą być zainstalowane na komputerze.
- Zainstaluj silnik bazy danych Microsoft Access 2010 x86 Redistributable, ta instalacja jest dostępna na: http://www.microsoft.com/download/en/details.aspx?id=13255 .
- Komponenty łączności danych pakietu Office 2007, ta instalacja jest dostępne na: http://www.microsoft.com/download/en/confirmation.aspx?id=23734 .
- Microsoft Access Database Engine 2010 x64 Redistributable. Będziesz trzeba pobrać pakiet lokalnie i uruchomić go z pasywną flagą. Możesz pobrać instalację tutaj: http://www.microsoft.com/en-us/download/details.aspx?id=13255 Instalacja przy użyciu wiersza polecenia z flagą '/ passive'. W wiersz polecenia uruchom następujące polecenie: "AccessDatabaseEngine_x64.exe / passive "
Uwaga: kolejność wydaje się mieć znaczenie - więc jeśli masz już coś zainstalowanego, odinstaluj i postępuj zgodnie z powyższymi krokami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 15:23:49