Ist eine COMException der 0x80040154 immer 'Klasse nicht registriert'?
Funktioniert ein System.- Laufzeit.InteropServices.COMException der 0x80040154 immer bedeuten, dass die Klasse nicht registriert ist? Ich bin immer ein COMException, die sagt: "Abrufen des COM-Klassenfactory für die Komponente mit CLSID {29131539-2EED-1069-BF5D-00DD011186B7} konnte aufgrund des folgenden Fehlers: 80040154." Er versucht zu laden Interop.Domino.dll das ist ein Hinweis, den ich bekam von der Registerkarte COM Verweis Hinzufügen namens "Lotus Domino Objects", welche Punkte zu domobj.tlb in das Notes-Programmverzeichnis kopiert werden.
Schrieb ich den code vor Jahren - es ist die einzige Sache, die ich je gemacht habe, mit interop-und es ist fair zu sagen, dass ich nie wirklich in den Griff bekommen.
Sehe ich diesen Fehler wieder nach dem Umzug der code auf einem 2008 R2 server (so ist es x64). Geschrieben wurde es auf XP und laufen auf 2003 (x86). Um das problem zu diagnostizieren, baute ich eine Win7 x86 (da es keine R2 x86) box und es funktionierte. Ich baute auch ein 2003 x64-box, und es schlägt mit dem gleichen Fehler, so wie es aussieht ist es verursacht durch den Umstieg auf x64-Architektur. Gibt es etwas, was ich tun sollte, wenn dabei interop zu bekommen x86-COM-DLLs zu arbeiten, die auf x64-Maschinen?
InformationsquelleAutor ssg31415926 | 2010-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem, die versuchen, zu bauen und ausführen .NET-Anwendung auf Windows 7 x64, genannt interop.domino.dll 32 bit nur.
Zu beheben, habe ich neu kompiliert .NET-Anwendung ausführen, die speziell als x86, wenn die Ausführung auf 64-bit-Betriebssysteme.
War ich mit Visual Studio 2010 Express Edition, die ist schwieriger zu target speziell für x86-Plattformen, als die bezahlte Versionen.
War die Lösung:
InformationsquelleAutor mpowrie
Achten Sie auf register von 32-bit-Komponenten verwenden der richtigen register (C:\Windows\SysWOW64\regsvr32.exe).
Wenn Sie bereits registriert sind, mit der 64-bit-version, die Registrierung jede dll mit der selben version.
Mehr Hilfe finden Sie hier Team wird von XP32 zu XP64 .NET Entwicklung - Irgendwelche Fallstricke?
Glück
InformationsquelleAutor lsalamon
Es ist ein IBM technote, die angibt, dass das Domino COM-Klassen nicht unterstützt, auf einem 64-bit OS. Sehen https://www-304.ibm.com/support/docview.wss?uid=swg21454291 So wie es scheint, auch durch kompilieren des Codes ausführen als x86 (pro mpownie Antwort), Sie sind immer noch dabei einige Chancen.
InformationsquelleAutor Richard Schwartz