Ich habe dieses lästige Problem hier bei der Verwendung einer VB6-DLL (AB5COM.dll) in meinem WebAPI-Projekt. Alles funktioniert gut in meinem lokalen VS2015. Das Problem tritt nur in meinem remote IIS 7.5 (Win2008 R2) nach dem Bereitstellen der veröffentlichten Website auf. Ich verwende diese DLL in 2 Projekten meiner Lösung.Konnte COM-Objekt nicht umgewandelt werden - Fehler: Keine solche Schnittstelle unterstützt
Ich habe versucht, verschiedene Dinge -
- Gene interop.AB5COM
- Disable einbetten und lokale Kopie
- Plattformwechsel zu x86
- APP POOL unterstützt 32-Bit-
- [assembly: ComVisible (true)]
- Hinzufügen von [Guid ("xxxxxxx-xxxxx-xxxxxx-xxxxxx")] als Attribut in meiner Klasse
Alles war nutzlos. Local VS2015 funktioniert, Remote IIS7.5 schlägt mit dieser Ausnahme fehl.
System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'AB5COM.trxAB5core'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{AF42661C-D369-454A-A005-55D51037166A}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
Ich kann auch nicht finden, die DLL Ich brauche mit regsvr32 zu registrieren, da der COM-DLL nicht veröffentlicht, und die Interop kann nicht registriert werden.
Würde ich Ihre Hilfe zu schätzen wissen.
Thx
Kann jemand dabei helfen ...? –
Was meinen Sie mit "die COM-DLL ist nicht veröffentlicht". –
Ich meinte, dass wenn ich das Projekt veröffentliche, der BIN-Ordner weder die COM dll noch irgendeine interop.COM dll hat. Ich nehme jedoch an, dass meine Projekt-DLL einen Verweis auf einen physischen Speicherort enthält, in dem sich das COM-DLL befindet (das ist nur meine Annahme). –