views:

143

answers:

1

Hi!

I have a COM object embeded in ASP.NET page using <object classid="clsid:XXX...">. It works in IE 32 bit, but does not work in IE 64 bit - can't access its functions. There are no error messages, no event logs where I can get some information.

The dll is in C#, includes COM visible class, compiled for Any CPU (though I also tried x86), and registered during client installation by executing regasm. This creates registry keys, well everything works fine except for IE 64. I searched internet about the issue or at least some guidlines and didn't find anything.

I received an answer on another forum, something about _MERGE_PROXYSTUB (I guess it's preprocessor definition?) and ProxyStubClsid32 registry key, but not very detailed. Well, I searched again, didn't find much, and experimented: rebuilt with _MERGE_PROXYSTUB defined, created ProxyStubClsid32 keys everywhere, but with no result.

What can be at least possible solutions or points to look at? Maybe there is a way at least to get the logs about why IE 64 can't access it?

+1  A: 

AnyCPU will work in a 64-bit program, but you have to register it differently. Use the 64-bit version of Regasm.exe, you'll find it in c:\windows\microsoft.net\framework64. Verify that you get the keys in HKLM\Software\Classes\CLSID, not in HKLM\Software\Wow6432Node\Classes\CLSID.

Hans Passant
Thank you, that works!Now I have a problem to make it non-blocked by writing to both 64bit and 32bit registry, but that's another thing...
Kurtevich