2016-03-16 69 views
-1

我们已将Windows从8.1升级到10. 现在在Windows 10中,我们安装的服务未运行。 如果我们在Windows 8.1上安装这些服务,相同的服务正常运行。当操作系统从Windows 8.1升级到Windows 10时,服务未运行

在windows 10上,我们尝试了下面没有解决问题的东西。

  1. 服务 - >选择服务 - >性能 - >设置[登录]作为本地服务

  2. 设置完全权限“perticuler”用户或“每个人”用户的文件夹中的文件服务存在。

  3. 将文件夹的所有者更改为存在服务文件的“everyone”,“system”或“perticuler”用户。

下面是一个解决方法,它适用于我们但不可行,因为它需要密码,实际上我们想知道背后的实际原因。

解决方法: 1. services-> select service - > properties - >将[登录]设置为“可以选择用户的此帐户”,并且还需要密码。请参阅附件图像。

请注意该服务是一个点网(c#)服务,它在内部运行一个jar文件。如果它能够运行jar文件,那么只有服务启动成功。

Workng method

在此先感谢

回答

0

我已经找到了原因和解决方案。

[问题原因]

服务无法理解的是,运行JAR文件,程序应该运行。

[详细]

我试着调试代码。 在进程开始的位置,弹出如下图所示的消息。

位置:processSample.Start() enter image description here

  • 这意味着一旦ATLEAST用户需要选择该程序。
  • 如果我们选择[Java(TM)Platform SE binary]一次,那么 服务将始终成功运行。
  • 此行为仅在Windows 10中。
  • 除了程序选择之外,运行服务还需要用户在图像中显示的设置。
  • 我想说的是,在默认的程序设置中已经为.jar文件选择了正确的程序,如下图所示,但仍然是Windows 10要求用户选择程序一次。

enter image description here

[方法]从窗户

运行JAR文件(C#)与下面设置服务:

sampleProcess.StartInfo.FileName = "javaw.exe"; 
sampleProcess.StartInfo.Arguments = "-jar Sample.jar"; 
sampleProcess.StartInfo.WorkingDirectory = @"C:\SampleFolder"; 
sampleProcess.StartInfo.UseShellExecute = false; 
sampleProcess.EnableRaisingEvents = true; 
sampleProcess.StartInfo.CreateNoWindow = false; 

这里工作目录的位置,其中[Sample.jar ] 确实存在。 另外必须设置Path环境变量才能执行“javaw.exe”。

修复之前,我有实现如下这是不恰当的每一个系统环境:

sampleProcess.StartInfo.FileName = "Sample.jar"; 
sampleProcess.StartInfo.WorkingDirectory = @"C:\SampleFolder"; 
sampleProcess.EnableRaisingEvents = true; 
sampleProcess.StartInfo.CreateNoWindow = false; 
相关问题