2017-12-13 8 views
0

Alle.Fehler 3706 Anbieter kann nicht gefunden werden. Es ist möglicherweise nicht richtig installiert

Ich habe ein DLL-Ansatz auf How to securely store Connection String details in VBA

auf Windows 10 64-Bit und MS Office sehr gut 64 Bit Dieser Code ausgeführt wird, erklärt verwendet. Aber die gleiche Kopie der Dateien kann ich nicht auf Wndows 8.1 Pro und MS Office 64 Bit verwenden.

erzeugte DLL wird umgewandelt durch machnines Umgebung Gastgeber

mit
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\regasm c:\windows\syswow64\OraConnection.dll /tlb /codebase 

Aber noch gleichen Fehler ich bin vor. Über Umgebungsvariablen wurde Sorgfalt aufgewendet. Meine Verbindungszeichenfolge ist

"Provider=OraOLEDB.Oracle; Data Source = ; User ID =; Password="; 
+0

Es gibt eine Vielzahl von kostenlosen (und legalen) .NET-Decompilern. Fühle dich nicht auf der sicheren Seite! –

+0

Der Ordner 'c: \ windows \ syswow64' ist der Speicherort für 32-Bit-Assemblys. Standardmäßig liest eine 64-Bit-Anwendung nichts von dort. Haben Sie einen Oracle-Client (einschließlich "Oracle Provider für OLE DB" -Treiber) auf Ihrem Windows 8.1 installiert? –

+0

Sind Sie sich sicher über MS Office 64 Bit? Das ist ziemlich ungewöhnlich. –

Antwort

0

Ich bin nicht sicher, was die DLL Sie über einfache Verschleierungs kauft. Alles, was Sie tun, ist es ein bisschen schwieriger zu erreichen, aber nicht wirklich die Privatsphäre in einem sinnvollen Sinne zu schützen. Mein normaler Ratschlag für die Verwaltung von Verbindungszeichenfolgen lautet einfach nicht Benutzer/Passwort speichern. Stattdessen müssen die Benutzer den Benutzernamen/das Kennwort zur Laufzeit eingeben und sicherstellen, dass Sie Persist Security Info=false in Ihrer OLEDB-Verbindung haben. Auf diese Weise ist die vollständige Verbindungszeichenfolge nach dem Öffnen nicht mehr zugänglich und es gibt keinen Verweis auf ein Kennwort. Das ist viel sicherer, als wenn Sie es in eine Variable in einer DLL stecken und Ihre Finger kreuzen. Niemand weiß, wie man einen Speicherauszug liest oder einen Debugger anfügt.

Das sagte, das ist nicht relevant für Ihre Frage, nicht in der Lage, den Anbieter zu verwenden. Als Erstes würde ich ausschließen, ob die DLL ein Problem verursacht, das Sie nicht erwartet haben, indem Sie sie entfernen und den Provider direkt verwenden. Wenn es ebenfalls fehlschlägt, dann wissen Sie, dass die DLL nichts damit zu tun hat und Sie müssen mit der Provider-Dokumentation von Oracle arbeiten, um dem Problem auf den Grund zu gehen.

+0

Obfuscation ist was ich will. Dieses Excel-Dienstprogramm wird von anderen verwendet, sodass ich meinen Benutzernamen und das Passwort für die Datenbank nicht teilen möchte. –

+0

Vielleicht bitten Sie Ihren DBA, ein anderes Konto zu erstellen, in dem Sie die Anmeldeinformationen freigeben können. –

+0

Das ist keine Option verfügbar. Hilfe, um den Fehler zu beheben, wenn Sie können. –

0

In der erfolgreichen Maschine habe ich Release 12.2.0.1.0 für ODAC 12.2c Release 1 als Orakel-Client verwendet.

aber sah eine aktuelle Version des Oracle-Client als 64-Bit-ODAC 12.2c Release 1 (12.2.0.1.0) für Windows x64, die auf 1. Juni 2017 veröffentlicht wurde.

Installiert das gleiche. Und mein Fehler wurde behoben. Als ich die Systemumgebungsvariablen beobachtete, sah ich nur wenige Dinge hinzugefügt. E: \ app \ client \ Admin \ produkt \ 12.2.0 \ client_1; E: \ app \ client \ Admin \ produkt \ 12.2.0 \ client_1 \ bin; C: \ Benutzer \ Admin \ Oracle \;

Ich weiß nicht wirklich, was sie taten. Aber der Fehler wurde behoben.

Kann jemand Highlight auf diese werfen?

+0

C: \ Benutzer \ Admin \ Oracle ist der Interessante. –

Verwandte Themen