hac*_*ket 2 c# service windows-services
我有一个使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
由于它没有登录事件查看器,它告诉我它甚至没有尝试启动该服务.
我在"HKEY_LOCAL_MACHINE/System/ControlSet001/Enum/Services/PBUService/Enum"下的服务注册表中找到了这些条目.
不太确定它意味着什么.

谁知道发生了什么事?
sev*_*tov 10
您必须已经为.Net 4.5或64位架构(或两者)编译了exe.这是您从WinError.h遇到的错误代码的解释:
// %1 is not a valid Win32 application.
//
#define ERROR_BAD_EXE_FORMAT 193L
Run Code Online (Sandbox Code Playgroud)
确保已为x86平台或任何CPU编译它,并且在机器上安装了您编译的.Net Framework的任何版本.