服务未及时启动 - C# Windows 服务

本文关键字:服务 Windows 启动 | 更新日期: 2023-09-27 18:31:38

我有一个Windows服务,我可以使用installutil在本地计算机上安装它,没有问题。

现在,此服务必须安装在服务器上。我将所有文件复制到服务器并运行相同的命令,将服务设置为以本地用户帐户登录,当服务启动时,我收到一条错误消息,说"登录失败" - 好吧,所以也许用户帐户是问题所在。

所以我将服务登录更改为本地系统帐户。我启动服务,并被告知"服务未及时响应启动或控制请求"。

所以我用谷歌搜索并尝试了各种解决方案,但无济于事。所以我开始想也许是 OnStart 方法中的某些东西坏了(即使我有从未记录过的日志记录调用)。所以我从 OnStart 事件中删除了所有代码,但服务仍然无法启动,我得到了"及时时尚"错误。

那么我在哪里?我相信这可能是由于我在项目中定义的参考。为了测试这一点,我从VS2012创建了一个新的Windows服务模板,没有引用(默认引用除外),我可以启动该服务。没问题。

所以我的问题是可能导致这种情况的原因是什么?在我的项目中,引用指向服务器上不存在的位置,但是服务所在的目录包含所有引用的 DLL。

编辑:程序.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
namespace RetrieveAndProcessSecurityLogs
{
    static class Program
    {
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
            new LogService()
            };
            ServiceBase.Run(ServicesToRun);
        }
    }
}

日志服务.cs

public partial class LogService : ServiceBase
{
    public LogService()
    {
        InitializeComponent();
        this.ServiceName = "Retrieve and Process Security Logs";
        this.CanPauseAndContinue = true;
        this.CanStop = true;
    }
    protected override void OnStart(string[] args)
    {
        //...
    }
    protected override void OnStop()
    {
        //...
    }

编辑:服务器上安装的.NET版本是v4.0,但是在项目的应用程序配置文件中有以下行:

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

4.5 部分可能是问题所在吗?

编辑2:底线:如果我引用DLL,我会及时收到时尚错误。如果我没有定义额外的 DLL 引用,服务将启动。

对不起这个故事。安德鲁

服务未及时启动 - C# Windows 服务

为了将来参考遇到此问题的任何人,问题是其中一个参考是针对 .NET FW 4.5 构建的,并且在安装服务的服务器上具有 .NET FW 4。我的机器有4.5。