VB.NET Windows服务适用于Win8x64,但不适用于Win2012
我创建了一个应用程序作为Windows服务,它在运行Windows 8 x64的工作站上运行良好,并在OnStart()上的应用程序事件日志中写入了几个事件。我使用InstallUtil在Windows 2012计算机上安装它,它启动后立即停止。我在事件日志中看到的关于它的唯一内容是在系统下:VB.NET Windows服务适用于Win8x64,但不适用于Win2012,.net,vb.net,windows-services,windows-server,windows-server-2012,.net,Vb.net,Windows Services,Windows Server,Windows Server 2012,我创建了一个应用程序作为Windows服务,它在运行Windows 8 x64的工作站上运行良好,并在OnStart()上的应用程序事件日志中写入了几个事件。我使用InstallUtil在Windows 2012计算机上安装它,它启动后立即停止。我在事件日志中看到的关于它的唯一内容是在系统下: The Foo service entered the stopped state. 如果不安装VS2012,我甚至无法在那台机器上调试它,我不想这样做,因为它在生产环境中 应用程序依赖于本地复制的
The Foo service entered the stopped state.
- 如果不安装VS2012,我甚至无法在那台机器上调试它,我不想这样做,因为它在生产环境中李>
- 应用程序依赖于本地复制的一个DLL李>
- 两台计算机上都安装了.NET Framework 2.0至4.5李>
- 我尝试在兼容性下以管理员身份运行,但它设置为在LocalService下运行,所以它应该有权限执行其任务所要执行的所有操作李>
编辑1:为什么你对这个问题投否决票,甚至连一句话都不说为什么它不好?我在调试windows服务方面学到的一些东西可能会帮助你解决问题
Public Sub CurrentDomain_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs)
'Log and output exception message before the application exits.
Dim exp = DirectCast(e.ExceptionObject, Exception)
Dim formatexp = String.Format("Exception: {0}; Message: {1}: InnerException: {2}",
exp.ToString(),
exp.Message.ToString(),
exp.InnerException.ToString())
Log(formatexp)
Console.WriteLine(formatexp)
Log("Application exited due to unhandled exception")
Console.WriteLine("Service exited due to unhandled exception")
'Exit the batch process gracefully.
Environment.Exit(-1)
End Sub
注意:如果您可以发布一些示例代码,那么这将有助于我们为您提供帮助。您是否检查了事件查看器以查看其中是否有任何信息?另一种选择是将日志记录添加到您的服务中,并将其写入文本文件-您可能会发现它失败的地方。Tim,我在问题中提到,我的应用程序在OnStart方法中写入了多个事件(没有一个会传递到事件日志(或事件查看器)),请重新阅读。抱歉,我第一次错过了。由于没有编写任何事件,这就为您提供了一个开始查看是否可以确定其不起作用的位置。将日志记录添加到一个文本文件中,您可以在其中记录每个步骤(如果您还没有这样做的话),可能会将其缩小到它停止工作的确切位置。另外,请仔细检查您的生产框,以确保LocalService有权写入应用程序日志。我猜它会在引发OnStart之前停止工作,我也不认为这是权限错误。我还可以查看其他日志吗?除了重写您的服务,让它将每个步骤的完成情况写入一个文本文件,我想不出来。谢谢!我来试一试,你能在答案中加入Log函数吗?