我有一个使用 C# ServiceBase 类构建的服务。当我在 Windows 7 和 Windows Server 2008 中运行它时,它可以工作;但是,它不适用于 Windows XP。
我使用sc create PBUService binpath= "C:\PBULogger.exe"
. 这是正确的道路。
没有任何东西在事件查看器中登录,我的异常处理代码也没有触发。
我想也许我没有安装正确的 .NET 版本,但我在 XP 机器上安装了 4.0。但是,我使用 Visual Studio Express 2012 创建了这个项目,我很确定它默认使用 .NET 4.5。这会引起问题吗?我使用的所有类都是 4.0 版。
我已将所有代码剥离为基本方法,但这仍然不起作用。这是我的代码:
namespace PBULogger {
class PBULoggerService : ServiceBase {
protected override void OnStart(string[] args) {
try {
base.OnStart(args);
} catch (Exception ex) {
EmailUtility.sendEmail("Service Error", ex.Message + ex.StackTrace);
}
}
protected override void OnStop() {
base.OnStop();
}
}
由于它没有登录事件查看器,它告诉我它甚至没有尝试启动服务。
我在“HKEY_LOCAL_MACHINE/System/ControlSet001/Enum/Services/PBUService/Enum”下的服务注册表中找到了这些条目。
不太清楚这意味着什么。
有人知道发生了什么吗?