我有一个 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/