如何在Windows应用程序和Web应用程序中实现共享内存?

时间:2011-12-16 08:33:31

标签: c# asp.net .net winforms shared-memory

我在.NET 4.0版中制作Windows应用程序和Web应用程序。在该应用程序中,我将.aspx页面的数据请求发送到Windows应用程序.windows应用程序有一个数据集合。我想用来自集合的适当数据发送对该请求的响应。        从Web应用程序我正在请求特定患者的数据,为此我在查询字符串中发送patientID。在Windows应用程序中,我收藏为

class StreamDataInfo
{        
    public string m_patientID { get; set; }
    public List<string> m_StreamData { get; set; }
}

从那个集合中我想从m_StreamData列表返回数据以响应该请求。请帮助我。谢谢。

3 个答案:

答案 0 :(得分:2)

我不确定我是否了解您所考虑的架构......

但是关于共享内存:

在Windows中,这是通过“内存映射文件”实现的 - 这些文件可以是真实文件或“非持久性”文件。

结合全局Mutex,您可以在同一台机器上实现两个或多个进程/线程之间的通信方案。

一些参考链接:

答案 1 :(得分:2)

答案 2 :(得分:2)

检查以下选项:

  1. 在Windows应用程序中托管WCF服务,该服务将公开您的数据。让Web应用程序从WCF服务请求数据。
  2. 使Web应用程序将请求写入指定文件夹上的文件; Windows应用程序将轮询此文件夹,然后将数据发送到Web应用程序(我不确定这将工作正常,因为我没有足够的有关您的体系结构的信息,但我会尝试在Web应用程序中实现WCF服务为此)
  3. 实施WCF服务,该服务将直接公开来自Windows应用程序数据库的数据,或者,如果可能,直接从Web应用程序访问Windows应用程序数据库。