ServiceBase服务错误193:在Windows XP 0xc1(ServiceBase se

2019-08-16 17:16发布

我有我使用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 /系统/ ControlSet001 /枚举/服务/ PBUService /枚举”服务。

真的不知道这意味着什么。

任何人都知道这是怎么回事?

Answer 1:

你必须编译你的exe无论是.NET 4.5或64位架构(或两者)。 这是你碰到从错误代码的解释WinError.h中 :

// %1 is not a valid Win32 application.
//
#define ERROR_BAD_EXE_FORMAT             193L

确保你编译它在x86平台或任何CPU,不管你对被安装在机器上编译.Net框架的版本。



Answer 2:

我发现这个google搜索窗口服务错误号码后:*一般错误消息意味着服务管理器无法找到运行该服务的确切.exe文件路径。 有时,服务是从与目录名多个单词的目录进行安装。 因此,需要该服务的注册表路径要放在双引号。

点击“开始”,然后键入“SERVICES.MSC”并按下回车键检查多媒体类调度和音频终端制造商服务。 检查路径下的“路径可执行文件:”两者的服务。 记下相同的。 还记的服务名称的两个服务。 该服务项目如下:

AudioEndpointBuilder - AudioEndpointBuilder多媒体类调度器 - MMCSS

现在,让我们检查,如果这两个服务下的路径是相同的,以及在注册表中。 点击“开始”,键入regedit,然后按Enter找到以下注册表项:

HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\服务下,检查是否有这些服务:MMCSS和AudioEndpointBuilder。 对应于以上两个服务,映像路径(在右窗格中)应该是一样的“SERVICES.MSC”路径*

我发现它在这里



Answer 3:

在我的情况,这是由于仅为64位的目标建设。 我忘了运行Server 2003我的测试服务器中的一个是32位。 我的服务运行在64位服务器2008 R2箱罚款。



Answer 4:

我认为有一个兼容性的问题,您使用的.NET Framework和Windows Server 2003.Do您使用.NET 4.5? Windows Server 2003中不能运行,这针对.NET框架4.5的应用程序。

http://www.microsoft.com/visualstudio/eng/products/compatibility

所以,你可以你的目标框架更改为4.0。



Answer 5:

在我们的例子中发生服务器崩溃和exe文件被损坏了。 我们重新部署了二进制文件,然后该服务成功启动。



文章来源: ServiceBase service error 193:0xc1 on Windows XP