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();
}
在"项目属性"-">"生成"选项卡->"平台目标"中,"x86"。所以它在 64 位操作系统的 Windows 服务器 2012 中给了我错误。现在我将其更改为anycpu,它工作正常。
感谢您的建议。
除了目标平台之外,目标框架也很重要。如果应用程序面向版本 3.5,请确保服务器上启用了 .Net Framework 3.5 功能。否则,在尝试安装和启动系统服务时,可能会遇到难以识别的错误循环。
就我而言,我必须使用管理员模式下的命令提示符删除旧的 Windows 服务:
SC DELETE <service name>
然后按照>>Nuthan Gowda提到的那样重建应用程序,它起作用了。