服务未及时启动 - 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 引用,服务将启动。
对不起这个故事。安德鲁
为了将来参考遇到此问题的任何人,问题是其中一个参考是针对 .NET FW 4.5 构建的,并且在安装服务的服务器上具有 .NET FW 4。我的机器有4.5。