C#
create win service program:
确保 ProjectInstaller.cs 视图设计器中的 serviceInstaller1 组件的 ServiceName 属性
与 Service1.cs 组件的 ServiceName 属性一致
我们发现大多数情况下,C#调用Process.Start根本不会出错。这个错误通常出现在当你使用Local System帐号运行程序时,例如我们有一个windows服务,此服务调用Process.Start创建新进程时,新进程及其所有的子进程都是以System帐号运行的。这时调用Process.Start就有可能出现此错误,只是有可能,其实在我们那么多机器上只有一台运行windows 2003的服务器出现了这个错误。可能与系统设置有关,深层原因有待考察。
解决方法:
只要修改代码,设置ProcessStartInfo的UseShellExecute=false即可
[code]
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = exepath;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
Process.Start(psi);
本文探讨了在C# Windows服务中使用Process.Start方法启动新进程时遇到的问题及解决方案。当服务使用LocalSystem账号运行并尝试启动新进程时,可能会遇到权限相关的问题。文章详细介绍了如何通过设置ProcessStartInfo的UseShellExecute属性为false来避免此类问题。

1728

被折叠的 条评论
为什么被折叠?



