在Windows服务和应用程序之间共享内存,最简单的是什么?

Joh*_*ohn 5 .net service ipc shared-memory .net-2.0

我需要我的服务来更新共享内存中的字段,以便客户端应用程序读取和显示.由于Session 0 Isolation,我发现我当前的解决方案无效.

我已经mutex在全局命名空间中重命名es来修复该元素,但它看起来并不像dll会在会话之间共享,尽管Session 0 Isolation的一个解决方案是:

"明确地为任何命名对象选择Local \或Global \命名空间,例如服务提供的事件或映射内存."

我不知道dll的哪个部分可以归类为命名对象,并且需要花费很长时间才能继续重新安装并逐步检查它.

我看到了命名频道的代码卷,并被推迟了.我不想创建一个触及磁盘的文件,因为我想象的是memoryMappedFile解决方案.dll的共享部分可以工作吗?否则最简单的是什么?

public ref class ServerGUIBridge
{
public:
#pragma data_seg(".sdata")
    static int commonIntShouldBeGlobal = 0;
    static bool hasBeenInitializedMakeMeGlobal = false;
#pragma data_seg()
#pragma comment(linker, "/section:.sdata,rws")
Run Code Online (Sandbox Code Playgroud)

我正在使用.NET 2.0,所以请不要使用WCF.

Joh*_*ohn 0

IPC 的一种经常被忽视的方法是写入注册表。对于我建议分享的两个 POD 成员来说,这将是理想的解决方案。IPC、MSDN 和注册表