【发布时间】:2013-08-24 09:02:45
【问题描述】:
我创建了一个应用程序作为 Windows 服务,它在运行 Windows 8 x64 的工作站上运行良好,并在 OnStart() 上的应用程序事件日志中写入了几个事件。我使用 InstallUtil 将它安装在 Windows 2012 机器上,它在启动后立即停止。我在事件日志中看到的唯一内容是在系统下:
The Foo service entered the stopped state.
- 如果不安装 VS2012,我什至无法在该机器上调试它,我不想这样做,因为它是在生产环境中。
- 应用程序依赖于一个本地复制的 DLL。
- .NET Frameworks 2.0 到 4.5 安装在两台机器上。
- 我尝试在兼容性下以管理员身份运行,但无论如何它都设置为在 LocalService 下运行,因此它应该有权执行其任务执行的所有操作...
编辑 1:你为什么要对这个问题投反对票,甚至不评论它为什么不好?
【问题讨论】:
-
您是否检查了事件查看器以查看其中是否有任何信息?另一种选择是将日志记录添加到您的服务并将其写入文本文件 - 您可能会发现它失败的地方。
-
蒂姆,我在问题中提到我的应用程序在 OnStart 方法中写入了几个事件(没有一个被传递到事件日志(或事件查看器)),请重新阅读。
-
对不起,我第一次错过了。由于没有编写任何事件,因此您可以从一个地方开始查看是否可以确定它为什么不起作用。将日志记录添加到一个文本文件中,您可以在其中记录每个步骤(如果您还没有)可能会将其缩小到它停止工作的确切位置。此外,请仔细检查您的生产框以确保 LocalService 有权写入应用程序日志。
-
我的猜测是它会在 OnStart 引发之前停止工作,我认为这也不是权限错误。还有其他我可以查看的日志吗?
-
没有重写您的服务,以便将每个步骤完成写入文本文件,这不是我能想到的。
标签: .net vb.net windows-services windows-server windows-server-2012