Die Anwendung erstellt eine Instanz des COM-Objekts mit Active.Createinstance . Die Komplette wurde von einem externen Anbieter geliefert, und ich integriere sie in meine Serviceanwendung, um mit der Datenbank zu interagieren. Insbesondere verwendet die Anwendung die von der COM -Schnittstelle bereitgestellten Methoden, um Daten in die Datenbank einzufügen. Nachdem ich jedoch die Anwendung im Release -Modus erstellt und auf dem Server bereitgestellt und auf dem Server bereitgestellt habe, erhalte ich die folgende Ausnahme, wenn ich versuche, die Instanz des COM -Objekts zu erstellen:
Code: Select all
COM error initializing HITWorkOrders (HRESULT: -2146768289):
Retrieving the COM class factory for component with CLSID {F6A3408C-5652-45A9-AF4B-9109A39FC8A1} failed due to the following error: 800aea5f. Exception from HRESULT: 0x800AEA5F.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
Konfiguration erstellen: Die Anwendung wird mit der x86 -Zielplattform erstellt, um der COM -Objekt -Architektur des COM -Objekts zu entsprechen. /> com+ Anwendung: Erstellt eine neue COM+ -Anwendung auf dem Server, erteilte die erforderlichen Berechtigungen und importierte das COM -Objekt sowohl als A ** Bibliotheksanwendung als auch eine Serveranwendung, um verschiedene Konfigurationen zu testen. Die Anwendung nicht als 32-Bit -Prozess zu erkennen und folglich nicht auf die richtigen 32-Bit-Registrierungseinträge oder COM-Umgebungen zuzugreifen. Ich bin mir jedoch sicher, wie ich den Server explizit zwingen kann, dies als 32-Bit-Anwendung zu behandeln und sicherzustellen, dass er auf die 32-Bit-Registrierungsschlüssel zugreift. Insbesondere würde ich die Anleitung zu: < /p>
zwingen, den Server zu zwingen, dies als 32-Bit-Anwendung zu behandeln (möglicherweise durch Ändern von IIS oder anderen Einstellungen, falls relevant). Unterstützung.