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

本文关键字:应用 实现 共享 内存 Web Windows | 更新日期: 2023-09-27 18:18:07

我正在用。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列表响应该请求。请帮帮我。

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

你看过内存映射文件吗?

http://weblogs.asp.net/gunnarpeipman/archive/2009/06/21/net-framework-4-0-using-memory-mapped-files.aspx

我不确定我是否理解您心目中的架构…

但是对于共享内存:

在windows中,这是通过"内存映射文件"的方式实现的——这些文件可以是真实文件,也可以是"非持久"文件。

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

部分参考链接:

  • http://msdn.microsoft.com/en-us/library/dd997372.aspx
  • http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx
  • http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx

检查以下选项:

    在Windows应用程序中托管一个WCF服务,该服务将公开您的数据。让web应用程序从WCF服务请求数据。
  1. 使web应用程序将请求写入指定文件夹中的文件;Windows应用程序将轮询此文件夹,然后将数据发送到web应用程序(我不确定这会工作得很好,因为我没有足够的关于你的架构的信息,但我会尝试在web应用程序中实现WCF服务)
  2. 实现一个WCF服务,该服务将直接从Windows应用程序数据库中公开数据,或者,如果可能的话,直接从web应用程序访问Windows应用程序数据库。