c# - Windows 服务应如何从自定义命令返回信息

标签 c# winapi windows-services

我有一个 Windows 服务作为我的应用程序的一部分运行。

如果我希望通过服务句柄与其通信,我可以发出自定义命令(例如,“启动工作程序”)。最终,这将调用 Win32 ControlService()。功能。从此类命令返回数据 block 的最佳方式是什么?

具体来说,我想返回一个“默认 URL”(即字符串),我的服务将通过其他协议(protocol)(如 http)进行响应。

首选可直接在 C# (.net 2.0) 服务中实现的解决方案。

最佳答案

如果您想继续使用 .net 2.0,请使用远程处理。让 Windows 处理 ControlService 调用(用于启动/停止/暂停您的服务)。当您希望您的应用程序连接时,请与您的服务建立远程连接。效果很好。

备选方案: 如果您可以升级到 .net 3.5,则可以使用 WCF 而不是远程处理。

您可以使用低级通信(管道和套接字),但实际上,远程处理应该更容易并且工作得很好——它在 .net 2.0 中受支持。

关于c# - Windows 服务应如何从自定义命令返回信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028842/

相关文章:

c# - 是否可以使用 SQLite.Net-PCL 创建内存数据库?

Python Pywin 和 OneNote COM : OneNote. Application.15 'cannot automate the makepy process'

c++ - WTS_CONNECTSTATE_CLASS 枚举类

c++ - 如何改变窗口的音量?

python - 如何从 Windows 定期创建 HTTP POST 请求

windows-services - 从非管理员用户帐户启动/停止 Windows 服务

c# - 如何将 zip 文件发送到 ASP.NET WebApi

c# - 从数组列表中获取字典

c# - 是否可以使用不安全的方式复制类字段

Windows 服务无法访问证书存储