4 Stimmen

c# OPC Automatisierung gibt 80040154

Ich bin ein .Net Entwickler. Neu bei OPC. Als ich einige Beispiele von OPC Client ausprobiert habe, haben sie alle diesen Fehler. Es scheint, dass die DLL nicht registriert ist, wie es scheint. Aber ich weiß nicht, wie und wo ich sie registrieren kann.

error: retrieving the COM class factory for component with CLSID failed due to the following error: 80040154

Auch ich habe dies versucht

regsvr32 Interop.OPCAutomation.dll", 

aber es gibt auch einen Fehler wie

The module "Interop.OPCAutomation.dll" was loaded but the entry-point DllRegisterServeer was not found.
Make sure that "Interop.OPCAutomation.dll" is a valid DLL or OCX file and then try again.

Ich habe so viele bestehende Foren durchforstet. So viele von ihnen sagten, ich solle das Plattformziel auf x86 ändern, aber ich habe immer noch das gleiche Problem. Zu Ihrer Information: Ich kann nur "Active (Any CPU)" in der Option "Platform" oben auf der Registerkarte "Build" der Projekteigenschaften sehen.

Hier sind die Details zu meiner Umgebung:

.Net 2005
OPCAutomation Weapper
Windows 7 64-bit OS
Dell Inspiron 1525 (I hope this is not a 64bit machine, but my engineer installed 64bit OS somehow).

Bitte helfen Sie mir.

Vielen Dank im Voraus!

5voto

guiu Punkte 51

Nur für den Fall, dass jemand mit diesem Problem zu kämpfen hat (so wie ich vor kurzem...), ich habe es geschafft! Nach einiger Zeit habe ich herausgefunden, dass es etwas mit dem .NET-Framework zu tun hat, das auf 64-Bit-Maschinen läuft. Solange die .NET-Anwendung nur mit der 32-Bit-CLR arbeitet, müssen wir das .NET-Framework so einstellen, dass es die CLR im WOW-Modus lädt. Geben Sie dazu Folgendes ein:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe SetWow

Danach sollten Sie in der Lage sein, die Anwendungen auszuführen.

Sie können zurückgehen und .NET Framework wieder so einstellen, wie es vorher war, indem Sie eingeben:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe Set64

1voto

user3673829 Punkte 41

Wenn das OPC Client Toolkit SDK (C++) verwendet wird, kann ein Problem mit dem Remote-Registrierungsdienst ebenfalls diesen Fehler verursachen.

Unter Windows 7 ist der Remote-Registrierungsdienst standardmäßig auf manuell eingestellt und nicht gestartet. Vergewissern Sie sich, dass der Remote-Registrierungsdienst auf allen Computern, auf denen Sie die Verteilung vornehmen möchten, gestartet ist. Dies kann manuell oder über die Gruppenrichtlinie erfolgen.

Die Funktion GetCLSIDFromRemoteRegistry() verwendet den RemoteRegistryService, um die CLSID eines OPC Servers zu ermitteln. Wenn dieser Dienst auf dem Client-Rechner nicht gestartet ist, kann das OPC-Programm den Fehler 80040154 zurückgeben.

0voto

Ken Punkte 407

Der Fehler, den Sie erhalten, ist höchstwahrscheinlich darauf zurückzuführen, dass der OPC-Server nicht richtig registriert ist. Vergewissern Sie sich, dass er registriert ist (in der Regel, indem Sie ihn in der Befehlszeile mit dem Parameter "/regserver" oder "/service" aufrufen). Möglicherweise gibt es auch Sicherheitsprobleme. In diesem Fall müssen Sie 'dcomcnfg' (DCOM Config) ausführen, um sicherzustellen, dass der Client Zugriff auf den Server hat.

0voto

Scott Solmer Punkte 3731

Diese Frage ist ein bisschen veraltet, so dass ich hoffe, dass Sie es inzwischen herausgefunden haben, aber ich hatte genau das gleiche Problem und wollte meine Lösung teilen. In meinem Fall verwende ich einen Kepware-Server. Wenn Sie eine Client-Anwendung für diesen Server kompilieren und versuchen, sie mit Interop.OPCAutomation auf einem Rechner auszuführen, auf dem der Server nicht installiert ist, erhalten Sie den Fehler "dll not registered" und "entry point not found", wenn Sie versuchen, die dll manuell zu registrieren.

Lösung: Vergewissern Sie sich, dass der Server installiert und in Betrieb ist.

0voto

Victor Flexo Punkte 1

Obwohl dies ein alter Beitrag ist, möchte ich meine Lösung mitteilen.

Mein Problem war, dass ich beim Versuch, eine Anwendung mit der OPCAutomation.dll zu installieren, die Fehlermeldung 80040154 erhielt, weil die Klasse nicht registriert war.

Dies ist meine Lösung, immer mit Administrator-Rechten:

  1. Kopieren Sie OPCDAAuto.dll in das Verzeichnis " C:\Windows\System32 " Ordner
  2. Geben Sie in der Eingabeaufforderung cmd " C:\Windows\System32\regsvr32 opcdaauto.dll"
  3. Sie sollten sich eine Nachricht wie diese ansehen: Bild

Ich hoffe, das hilft!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X