我有一个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引用,则服务启动。
对不起这个故事。 安德鲁
答案 0 :(得分:3)
对于遇到此问题的任何人的未来参考,问题是针对.NET FW 4.5和在安装服务的服务器上构建的引用之一是.NET FW 4.我的机器有4.5。