C#ServicedComponent进程耗尽,在一台计算机上找不到文件异常

C#ServicedComponent进程耗尽,在一台计算机上找不到文件异常,c#,com+,C#,Com+,我编写了一个愚蠢的简单ServicedComponent(COM+组件)来耗尽进程并在x64服务器上包装一个仅限x86的COM组件。在我的测试虚拟机(Server2008R2)上,它运行良好。在生产框中,我得到一个文件未找到异常 C:\Windows\Microsoft.NET\Framework\v2.0.50727>C:\Testapp.exe 系统找不到该文件 明确规定。(HRESULT的例外情况: 0x80070002)在 System.Runtime.InteropServices.M

我编写了一个愚蠢的简单ServicedComponent(COM+组件)来耗尽进程并在x64服务器上包装一个仅限x86的COM组件。在我的测试虚拟机(Server2008R2)上,它运行良好。在生产框中,我得到一个文件未找到异常

C:\Windows\Microsoft.NET\Framework\v2.0.50727>C:\Testapp.exe 系统找不到该文件 明确规定。(HRESULT的例外情况: 0x80070002)在 System.Runtime.InteropServices.Marshal.ThroweExceptionForhr内部(Int32 错误代码,IntPtr errorInfo)位于 System.EnterpriseServices.Thunk.Proxy.CoCreateObject(类型 服务器类型,布尔bQuerySCInfo, Boolean&bIsAnotherProcess,字符串& uri)在 System.EnterpriseServices.ServicedComponentProxyAttribute.CreateInstance(类型 服务器类型)在 System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(类型 serverType,对象[]道具,布尔值 bNewObj)在 中的Testapp.Program.Main(字符串[]args) D:\TFS\Testapp\Program.cs:第11行

在Program.cs的第11行中,我实例化了正在包装的COM类型的对象

同样,这在我的x64 Win 7开发机器和x64测试虚拟机上运行良好。 我正在构建我的组件x86,并从32位命令提示符向32位版本的regsvcs注册


我到底做错了什么或忘记了什么?

澄清一下,您有一个COM+组件,它封装了一个本机COM组件?如果是,您确定本机COM组件存在并且已在您的服务器上注册吗?此外,您是否尝试通过组件服务工具将已服务组件安装到COM+目录中来注册已服务组件?是的,我确定COM组件存在(我在同一个.vbs文件中测试了它们)。使用regsvcs.exe和组件服务工具之间有区别吗?我没有答案,但我看到过这样一种情况:regsvcs.exe没有在x64上正确注册组件(我们在尝试实例化组件时出错),但使用组件服务工具工作得很好。您可以尝试比较不同服务器上的注册表项,以查看组件在不同服务器上的注册是否不同。是否能够解决此问题?如果是,请发布解决方案好吗?为了澄清,您有一个COM+组件包装了一个本机COM组件?如果是,您确定本机COM组件存在并且已在您的服务器上注册吗?此外,您是否尝试通过组件服务工具将已服务组件安装到COM+目录中来注册已服务组件?是的,我确定COM组件存在(我在同一个.vbs文件中测试了它们)。使用regsvcs.exe和组件服务工具之间有区别吗?我没有答案,但我看到过这样一种情况:regsvcs.exe没有在x64上正确注册组件(我们在尝试实例化组件时出错),但使用组件服务工具工作得很好。您可以尝试比较不同服务器上的注册表项,以查看组件在不同服务器上的注册是否不同。是否能够解决此问题?如果是的话,你能发布解决方案吗?