安装Windows服务后,我遇到了一个奇怪的问题。
此Windows服务将调用一种方法每5分钟发送一次邮件。
我使用C#visual Studio 2010开发了Windows服务。
在开发之后,我已经采用了发布版本和安装在我的系统(即Windows 7操作系统)中,并且它没有任何问题。
一旦在Windows服务器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();
}
答案 0 :(得分:0)
在项目属性中 - >构建标签 - >平台目标是 - x86。所以它给了我在64位操作系统的Windows Server 2012中的错误。现在我把它改成了anycpu并且工作正常。
感谢您的建议。
答案 1 :(得分:0)
除目标平台外,目标框架也很重要。如果您的应用程序针对3.5版,请确保在服务器上启用了.Net Framework 3.5功能。否则,在尝试安装和启动系统服务时,您可能会遇到难以识别的错误循环。
答案 2 :(得分:0)
在我的情况下,我必须使用命令提示符在管理模式下删除旧的Windows服务:
SC DELETE <service name>
然后重建应用程序,如&gt;所述。 &gt; Nuthan Gowda,它有效。