繁体   English   中英

在同一进程中运行的Windows Service和Cassini-dev之间共享数据

[英]Share data between Windows Service and Cassini-dev running in the same process

我有一个用C#编写的Windows服务。 我最近将CassiniDev添加到了它,以允许远程Web管理和对该服务的监视。 除了无法从托管的ASP.NET页与Windows服务的数据层进行交互之外,该集成进行得非常好。

我尝试将所有感兴趣的组件放入一个通用程序集,但调试器显示有两个加载的程序集具有相同的名称,但来自不同的路径。 Cassini在某些临时文件夹上运行ASP.NET,因此我正在使用的程序集在同一进程的地址空间中实际上是“不同的实例”。

我不确定这是怎么回事。 可能是一些我目前不了解的“应用程序域”分离内容。

因此,如果Windows Service和Web服务器在同一进程中运行,如何使它们交互? 假设我要在ASP.NET部分中报告服务的某些状态。 有什么想法可以实现这一目标吗? 我想到了共享内存或TCP,但这听起来像是纯粹的进程间通信的过大杀伤力。

如果安全不是紧迫的问题,即数据不是高度敏感且处于受控环境中,那么使用命名管道可以成功。 该框架中已实现了用于管理管道的托管API,因此您无需考虑本地调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM