服务没有及时启动 - c#windows服务

时间:2013-09-18 04:44:41

标签: c# visual-studio-2012 service

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

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

因此,我将服务登录更改为本地系统帐户。我开始服务,我被告知“服务没有及时响应启动或控制请求”。

所以我用Google搜索并尝试了各种解决方案,但无济于事。所以我想到也许它在OnStart方法中出现了一些问题(即使我有从未记录过的日志记录)。所以我从OnStart事件中删除了所有代码,但服务仍无法启动,我得到了“及时”的错误。

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

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

编辑: Program.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);
        }
    }
}

LogService.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部分可能成为问题吗?

Edit2:底线:如果我引用DLL,我会及时得到时尚错误。如果我没有定义额外的DLL引用,则服务启动。

对不起这个故事。 安德鲁

1 个答案:

答案 0 :(得分:3)

对于遇到此问题的任何人的未来参考,问题是针对.NET FW 4.5和在安装服务的服务器上构建的引用之一是.NET FW 4.我的机器有4.5。