我用 C# 编写了一个 Windows 服务,它将 wav 文件转换为 mp3,然后将它们存储在远程服务器上。在我的开发平台(操作系统:WinXP SP3)上,服务启动良好并按预期运行。
当我将其安装到生产机器(操作系统:WinServer 2000)时,启动服务时它无法及时启动,并且始终处于“正在启动”状态。由于文件正在转换和传输,因此该程序显然正在运行。
我的预感是问题出在计时器组件上,我认为在 Windows 2000 Server 机器上,计时器可能导致系统将程序注册为“正在启动”。
关于 Windows Server 2000,我是否遗漏了什么?
最佳答案
我不熟悉在 .NET 中编写服务,但一般来说,用于启动服务并报告其初始状态的线程不应与执行实际工作的线程相同。该服务应该生成一个工作线程,以便入口点可以快速将状态返回到 SCM。
关于c# - 永久服务 "Starting"状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1095498/