32位进程如何与.NET中的64位进程通信?

Joh*_*ith 8 .net 64-bit remoting 32-bit ipc

Windows无法使32位进程加载64位dll,因此我尝试使用远程处理以允许32位进程与64位进程交互.

这就是问题所在:虽然两个应用程序位于同一台机器上,但一个是32位,另一个是64位,它们必须是这样的:32位或64位都会破坏这些应用程序构建在顶层的所有内容的.

我正在使用.NET的System.Runtime.Remoting.RemotingConfiguration类并调用其Configure()方法并将引用传递给App.config文件,该文件引用我将通过远程处理访问的MarshalByRefObject类.

我得到它的工作,但只有长,Client,Host,MarshalByRefObject类是32位或64位.如果我把它们混合起来这将无效:我最终会遇到BadImageFormatException:

无法加载文件或程序集"MyRemotingObject"或其依赖项之一.尝试加载格式不正确的程序.

只要我将这两个应用程序设置为32位或64位,异常就会消失,但同样,其中一个必须是32位,另一个必须是64位.

有人能告诉我如何在32位.NET应用程序和.64位.NET应用程序之间启用进程间通信吗?

Rog*_*mbe 10

随机猜测:.NET远程处理需要将程序集加载到两个进程中以获取元数据.您的数据协定(使用WCF术语)应该在一个单独的程序集中,并且应该编译为"AnyCPU",以便可以将其加载到任一进程中.您已将其明确设置为32位或64位.

  • 你应该接受答案,然后...... ;-) (2认同)