我已经在两台不同的Windows Server 2008(Pre R2)机器上重现了问题。 我还验证了当从32位应用程序启动时,COM对象可以在这些机器上使用。 我使用LINQPad 32位和64位进行测试。 运行为32位的LINQPad可以创建COM对象。 64位LINQPad则不能。
[link text][1] <-- 我正在使用的解决方案(适用于R2) http://msdn.microsoft.com/en-us/library/aa384253(VS.85).aspx <-- 文档指出,在Windows Server 2008上未反映DllSurrogate注册表条目,但我不知道如何规避此限制。 我尝试使用regedit.exe * 32直接编辑32位注册表。
有什么想法吗? 在Pre-R2上使用默认的DllSurrogate(dllhost.exe)是否有一些特殊技巧? 目前,将我们的COM重写为.NET不是一个选项。 我希望我只是错过了什么,因为这确实在最新的Windows Server 2008 R2上运行。
谢谢查看! 丹尼