Wie verwende ich einen 32-Bit-ODBC-Treiber auf 64-Bit-Server 2008, wenn das Installationsprogramm keinen Standard-DSN erstellt?
Ich lief in ein Problem mit einigen Drittanbieter-software, die wir verwenden, um track-software-Lizenz-Nutzung in unseren computer labs. Wir haben vor kurzem migriert die app auf 64-bit-Server-2008 nach Erhalt der zusagen von den Unternehmen, dass es kompatibel war, und die einige Vorversuche, die zeigten, dass die app arbeitete in der 64-bit-Umgebung. Leider ist die person, die die Prüfung nicht testen die Funktionalität von ein paar apps, die ich habe, die sich auf den Zugriff auf die Daten zu tun, sowohl live - und post-processing auf die Daten zu produzieren einige Berichte.
Stellt sich heraus, dass die Anwendung nicht über ein 64-bit-ODBC-Treiber zum Zugriff auf die internen Daten und kann nicht mit einem 64-bit-SQL Server-ODBC-Treiber für den export der Daten nach SQL server. Schließt es und installieren Sie eine 32-bit-ODBC-Treiber, aber er installiert es als Benutzer-Datenquelle, nicht eine System-Datenquelle, was bedeutet, dass mein windows-Dienst läuft, dass die live-Sammlung ist nicht in der Lage, es zu finden. Ich bin auch nicht in der Lage, einen System-DSN erstellen, da die Datenquellen-admin-Konsole nicht finden können, die Treiber installiert.
Meine Frage ist, wie kann ich konfigurieren einer Datenquelle für diese Verbindung, dass ich den Zugriff von einem C#/.NET windows-Dienst läuft unter einem system-Konto?
Da habe ich herausgefunden, einen Weg, es zu tun, werde ich meine Lösung als Antwort (im Einklang mit der FAQ auf, wie Sie Ihre eigene Frage zu beantworten).
InformationsquelleAutor der Frage tvanfosson | 2009-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es stellt sich heraus, dass Sie erstellen können 32-bit-ODBC-verbindungen unter Verwendung
C:\Windows\SysWOW64\odbcad32.exe
. Meine Lösung war, die 32-bit-ODBC Verbindung als System-DSN. Diese wusste immer noch nicht lassen Sie mich schließen, um es seit .NETTO konnte nicht schauen Sie. Nach bedeutenden und vergeblicher Suche zu finden, wie man die OdbcConnection-Klasse zu suchen, die DSN in der richtigen Ortich stolperte über eine Website, die vorgeschlagene änderung der registry zu lösen ein anderes problem.Ich landete erstellen der ODBC-Verbindung direkt unter
HKLM\Software\ODBC
. Ich schaute in die SysWOW6432 Schlüssel zu finden, die Parameter, die eingerichtet wurden, mithilfe der 32-bit-version des ODBC-administration-tool, neu erstellt und dieser in der standard-Speicherort. Ich wusste nicht fügen Sie einen Eintrag für den Fahrer, aber nicht installiert wurde, indem Sie das standard-Installationsprogramm für die app.Nach der Erstellung des Eintrages (von hand), feuerte ich meinen windows-Dienst, und alles war glücklich.
InformationsquelleAutor der Antwort tvanfosson
Öffnen Sie IIS-manager, wählen Sie Anwendungspools, wählen Sie den Anwendungspool, den Sie verwenden, klicken Sie auf Erweiterte Einstellungen im Menü rechts. Unter allgemein setzen Sie "Enable 32-Bit Applications" auf "True".
InformationsquelleAutor der Antwort Parag Vyas
Viele dieser Antworten sind ziemlich alt, so dass ich dachte, würde ich ein update mit einer Lösung, die ich für hilfreich halte.
Unser Problem war ähnlich wie bei den OP ' s, haben wir ein Upgrade 32-bit-XP-Rechnern auf 64 bit windows 7 und unser Anwendungs-software, verwendet einen 32-bit-ODBC-Treiber nicht mehr in der Lage zu schreiben, um unsere Datenbank.
Stellt sich heraus, gibt es zwei ODBC Data Source Manager, eine für 32 bit und eine für 64 bit. Ich musste also laufen die 32 bit-version, die findet sich in C:\Windows\SysWOW64\odbcad32.exe. Innerhalb des ODBC-Datenquellen-Manager war ich in der Lage, gehen Sie auf die Registerkarte System-DSN und Hinzufügen, meine Treiber zu der Liste mit der Schaltfläche Hinzufügen. (Überprüfen Sie die Registerkarte "Treiber", um eine Liste der Treiber, die Sie hinzufügen können, wenn der Treiber nicht in diese Liste, dann müssen Sie möglicherweise um es zu installieren).
Das nächste Problem war die software, die wir liefen, war kompiliert mit 'Any CPU'. In diesem Fall würde das Betriebssystem 64 bit ist, so würde es Aussehen, bei der 64-bit-ODBC-Datenquellen. Also ich musste mich zwingen, das Programm zu kompilieren, als ein x86-Programm, welches dann sagt er zu Blick auf die 32-bit-ODBC-Datenquellen. Um Ihr Programm zu x86, in Visual Studio gehen, um Ihre Eigenschaften, und unter der Registerkarte "erstellen" an der Spitze gibt es eine Plattform, drop-down-Liste, und wählen Sie x86. Wenn du nicht den source-code und kann nicht kompilieren Sie das Programm als x86, die Sie vielleicht in der Lage sein, nach rechts klicken Sie auf das Programm .exe-Datei und gehen Sie auf die Registerkarte Kompatibilität, und wählen Sie eine Kompatibilität, die für Sie arbeitet.
Einmal hatte ich den Treiber Hinzugefügt und das Programm verweist auf die richtigen Treiber, funktioniert alles, wie es zu verwenden. Hoffentlich hilft jemand der Arbeit mit älteren software.
InformationsquelleAutor der Antwort Baddack
Lösung, die mir geholfen haben:
installieren Sie die "Microsoft Access Database Engine 2010 Redistributable" für 32 bit.
InformationsquelleAutor der Antwort vrogach