A little background...
We have several COM Dlls, compiled in both 64 and 32 bit, each correctly works in a .net console app (32-bit to 32-bit console, etc). 2 of these objects are returned as out parameters from a 3rd.
When we run 32-bit mode in IIS, evenrything works correctly, using the 32-bit version of the COM objects.
We we run in 64-bit mode in IIS, some of the COM objects work and some don't. One in particular is getting an E_NOINTERFACE error why typecasting the object (returned) to the correct interop interface.
If we break the code apart, the call returns a reference, and the typecast calls QI on the COM object.
If we turn on ATL debugging on the com object, we see the QI for interface, and it works successfully.
(see some sample code below)
Anyone have a similar problem, or any ideas where we could look
chad
// This retrieves the COM pointer, where it is in another 64-bit process
WestLib.OWest west = GetWest();
// This works
SessionLib.Session session = (SessionLib.Session)west.Session;
// This throws a COMException (E_NOINTERFACE)
SettingsLib.Settings settings = (Settingslib.Settings)west.Settings;