昨天,我在Windows 10中安装了可执行文件C:\Users\urban\Documents\Visual Studio 2013\Projects\TestService\obj\Release\TestService.exe
作为服务,以便它现在显示在services.msc
中。然后我启动它,错误信息就像Windows服务已启动,然后停止,但没有记录
本地计算机上的“服务名称”服务启动然后停止。有些服务如果未被其他服务或程序使用,则会自动停止。
今天,我回到了VS,并添加事件日志和的try ... catch,让我的代码现在看起来像这样:
internal class TestService : ServiceBase
{
Thread Worker;
AutoResetEvent StopRequest = new AutoResetEvent(false);
Toolkit toolkit;
protected override void OnStart(string[] args)
{
try {
EventLog.Log = "Application";
EventLog.Source = "TestService";
EventLog.WriteEntry("Starting Test Service", EventLogEntryType.Information);
var User = System.Security.Principal.WindowsPrincipal.Current;
toolkit = new ServiceToolkit(User);
Worker = new Thread(DoWork);
Worker.Start();
}
catch (Exception e)
{
EventLog.WriteEntry(e.GetType().Name + ": " + e.Message, EventLogEntryType.Error);
throw;
}
}
我编译它,并试图从services.msc
启动它。尽管错误信息仍然相同,但我希望服务至少记录它已启动并引发了哪个错误。但是,纳达。在启动服务之前,我清除了事件查看器的“应用程序”协议,同时添加的少量日志不是来自我的服务。
这是怎么回事?
查看https://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx(演练:创建Windows服务) – Jan18101997
'ServiceBase [] ServicesToRun; TestService ts = new TestService(); ts.AutoLog = true; ServicesToRun = new ServiceBase [] {ts}; ServiceBase.Run(ServicesToRun);' –
看看[youtube](https://www.youtube.com/watch?v=uM9o8GsO_u4)并且流程如何在c#中创建Windows服务。在观看这些步骤后我收到了同样的错误我的错误消失了。 –