【发布时间】:2012-06-05 01:56:27
【问题描述】:
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 应用程序之间的进程间通信?
【问题讨论】:
-
Remoting 在这里不是你的朋友;使用更简单的东西——也许是一个基本的套接字服务器。
标签: .net 64-bit ipc remoting 32-bit