我对 Windows 服务和线程有点陌生,所以我希望我在这里没有犯明显的错误。我开发了一个应用程序,用于在 C# 中运行各种网络维护类型的活动。该应用程序在我的本地机器上完美运行,我决定我希望它作为 Windows 服务运行,因此使用相同的代码进行了适当的更改,并且再次在我的本地机器上运行良好。
当我将它移植到我网络上的服务器上时,我的问题就出现了。非 Windows 服务代码再次运行良好并按预期运行。然而,Windows 服务代码似乎什么也不做。该过程可以正常安装并且可以正常启动/停止,但似乎没有任何代码正在执行,对于在 Visual Studio 中调试 Windows 服务的任何帮助也将不胜感激。这是我的 OnStart 过程中似乎没有执行的代码。
smThread = new Thread(delegate() { sm.RunServerMonitor(ref run); });
smThread.Start();
dailyThread = new Thread(delegate() { dailyEvents(); });
dailyThread.Start();
因为非 Windows 服务代码有效,所以我不相信我会遇到权限类型问题,除非需要设置不同的权限以允许服务远程执行任务,而不是使用普通 c# 代码执行相同操作.
谢谢,马特