试问一个32位过程在.NET中的64位进程进行通信?(How can a 32 bit proces

2019-07-29 15:34发布

Windows不会有可能使32位进程加载64位DLL,所以我试图用远程为了让32位程序与64位进程交互。

这里的问题:当两个应用都位于同一台机器上,一个是32位的,另一个是64位,并且他们必须是这个样子:让32位或64位将打破一切这些应用都是建立在顶部的。

我使用.NET的System.Runtime.Remoting.RemotingConfiguration类和调用它的配置()方法,并传递一个参考,以它引用,我会通过远程访问被MarshalByRefObject类的App.config文件。

我得到它的工作,但只是作为长期客户,主机,MarshalByRefObject的类或者是32位或64位。 如果我把它们混合起来,这将不起作用:我会用BadImageFormatException结束:

无法加载文件或程序集“MyRemotingObject”或它的一个依赖。 试图加载程序格式不正确。

唯一的例外,只要我让这两个应用是32位或64位,但同样,他们中的一个必须是32位和64等位消失。

谁能告诉我如何启用32位.net应用程序和0.64位.NET应用程序之间的进程间通信?

Answer 1:

随机猜测:.NET远程需要的组件加载到这两个进程,以获得元数据的保持。 你的数据契约(使用WCF的术语)应该是在单独的程序,并应被编译为“AnyCPU”,以便它可以被装入过程。 你明白了明确设置为32位或64位。



Answer 2:

你可以通过命名管道使用WCF。

这里有一个简单的例子: http://msdn.microsoft.com/en-us/library/system.servicemodel.netnamedpipebinding.aspx



文章来源: How can a 32 bit process communicate with a 64 bit process in .NET?