gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:36:52 24 4
gpt4 key购买 nike

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 应用程序之间启用进程间通信吗?

最佳答案

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

关于.net - 32 位进程如何与 .NET 中的 64 位进程通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10822937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com