【发布时间】:2010-12-06 12:39:05
【问题描述】:
我想在 .NET 中创建一个在 WinMo 6.x 上运行的 Windows 服务...... 有很多关于如何在 MFC(和非 MFC)中做到这一点的文档 http://msdn.microsoft.com/en-us/library/ms838599.aspx
但我找不到 .NET 的任何指针,它甚至可行吗?
谢谢,
【问题讨论】:
标签: .net windows-mobile windows-services
我想在 .NET 中创建一个在 WinMo 6.x 上运行的 Windows 服务...... 有很多关于如何在 MFC(和非 MFC)中做到这一点的文档 http://msdn.microsoft.com/en-us/library/ms838599.aspx
但我找不到 .NET 的任何指针,它甚至可行吗?
谢谢,
【问题讨论】:
标签: .net windows-mobile windows-services
我很确定(不是 100%)您只能创建 native 服务 DLL(这意味着没有 .Net)。
一种解决方法是创建一个控制台应用程序(或从其 Main 方法执行所有操作的常规应用程序)并将其放入 /Windows/Startup/ 文件夹中。每次重置设备时,您的应用程序都会自动启动。然而,不这样做是有充分理由的,因为 WinMo 设备限制了可以像这样运行的应用程序的数量。
【讨论】:
.NET CF 上没有对托管服务的内置支持(很像操作系统的其他部分,例如今天的屏幕面板或软件输入面板(即键盘)不支持托管代码)。
正如 MusiGenesis 建议的那样,一个好的解决方法是简单地将 GUI 较少的可执行文件放在启动文件夹中,因为 Windows Mobile 上的服务通常不需要服务管理器类型的应用程序来列出可用服务及其当前状态等。
如果您想要更结构化的东西或需要某种 GUI 来启动/停止您的服务,您可以查看以下 codeplex 项目:Windows Mobile 托管服务 - http://www.codeplex.com/managedserviceswm。然而,它本质上只是在 \windows\startup\ 中添加一些额外的抽象,所以可能不值得......
【讨论】: