我有一个用C#编写的Windows服务。我最近添加了CassiniDev以允许远程Web管理和服务监视。除了我无法从托管的ASP.NET页面与我的Windows服务的数据层进行交互之外,集成非常顺利。
我已经尝试将所有感兴趣的内容放入一个公共程序集中,但是调试器显示有两个加载的程序集具有相同的名称但来自不同的路径。 Cassini在一些临时文件夹中运行ASP.NET,因此我使用的程序集在同一进程的地址空间中实际上是“不同的实例”。
我不确定这里发生了什么。可能是目前我还不了解的一些“应用领域”分离内容。
因此,使用Windows服务和运行在同一进程中的Web服务器,如何让它们进行交互?假设我在服务部分中有一些我要在ASP.NET部分中报告的状态。任何想法我怎么能做到这一点?我想到了共享内存或TCP,但对于纯粹的进程内通信来说,这听起来有点过分了。
答案 0 :(得分:1)
如果安全性不是直接关注的问题,即数据不是高度敏感且在受控环境中,那么您可以使用Named Pipes取得成功。用于处理管道的托管API已作为框架的一部分实现,因此您无需考虑本机调用。