在Windows Server 2012中安装的Windows服务

时间:2014-11-14 09:18:47

标签: c# windows-services windows-server-2012

安装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();
}

3 个答案:

答案 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,它有效。