Windows 服务器 2012 中安装的 Windows 服务

本文关键字:Windows 服务 安装 服务器 2012 | 更新日期: 2023-09-27 18:30:26

安装Windows服务后我遇到了一个奇怪的问题。

此 Windows 服务将调用一个方法以每 5 分钟发送一次邮件。

我使用 C# visual Studio 2010 开发了 Windows 服务。

开发完成后,我采用了发布构建版本并安装在我的系统(即 Windows 7 操作系统)中,它可以正常工作。

一旦在Windows Server 2012中完成相同的操作,那么该服务将被安装,但之后什么都不会发生。

我目前使用System.Threading.Timer甚至我尝试使用System.Timers.Timer。这两者都可以在我的系统中工作,但在服务器中不起作用。

如果需要,我可以发布代码。

private Timer IntervalTimer;
protected override void OnStart(string[] args)
{
        Server.WriteToLogFile("Windows Service started");
        int loopTime = 5; //Every 5 Minutes
        Server.WriteToLogFile("Loop Time : " + loopTime.ToString());
        TimeSpan tsInterval = new TimeSpan(0, loopTime, 0);
        IntervalTimer = new Timer(new TimerCallback(IntervalTimer_Elapsed), null, tsInterval, tsInterval);
 }
private void IntervalTimer_Elapsed(object state)
{
     Server.WriteToLogFile("Event Fired");
     Library library = new Library();
     library.Start();
}

Windows 服务器 2012 中安装的 Windows 服务

在"项目属性"-">"生成"选项卡->"平台目标"中,"x86"。所以它在 64 位操作系统的 Windows 服务器 2012 中给了我错误。现在我将其更改为anycpu,它工作正常。

感谢您的建议。

除了目标平台之外,目标框架也很重要。如果应用程序面向版本 3.5,请确保服务器上启用了 .Net Framework 3.5 功能。否则,在尝试安装和启动系统服务时,可能会遇到难以识别的错误循环。

就我而言,我必须使用管理员模式下的命令提示符删除旧的 Windows 服务:

SC DELETE <service name>

然后按照>>Nuthan Gowda提到的那样重建应用程序,它起作用了。