无法启动的过程在C#
问题描述:
我写这个代码启动一个进程:无法启动的过程在C#
var proc = new Process();
proc.StartInfo.Arguments = string.Format("{0} {1}", inputFilePath, outputFilePath);
proc.StartInfo.FileName = @Settings.GetImageMagickConvertPath();
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.UseShellExecute = false;
proc.Start();
这工作完全在本地。但是当我把这段代码放到远程机器上时,这段代码不再起作用(错误是“尝试启动proc时”访问被拒绝“)。所以,我已经添加了我使用,以便使用RDC(用户/密码)启动过程中连接的凭据:
proc.StartInfo.UserName = "user";
System.Security.SecureString secret = new System.Security.SecureString();
foreach (char c in "pass")
secret.AppendChar(c);
proc.StartInfo.Password = secret;
,但我仍然收到了同样的错误......
你们是否看到什么可以解决这个问题?
答
好的,现在就解决了。
基本上我有两个问题:
的过程,开始是不正确的(而不是
folder/program.exe
我把错误folder/
和我收到“访问被拒绝”,这让我的生活是一场噩梦的路径(开始寻找权利,账户等)。如果微软改进了这个错误,例如“进程的路径错误”,那么结果会不错。我必须将其作为本地服务(应用程序池)而不是应用程序池标识运行。 (和不需要启动信息凭证)参与
操作系统:Windows 2008服务器R1)
哪个操作系统(一个或多个)参与? – Neil 2012-08-15 23:45:32
您是否必须传递用户名密码,或许远程计算机需要服务帐户用户/ pw尝试使用用户名密码传递凭证,或许它期望域/用户密码 – MethodMan 2012-08-15 23:48:17
将整个拒绝访问异常转储到磁盘并查看详细信息。我的猜测是这是一个NTFS ACL问题。这是来自ASP.NET/WCF进程吗?如果是这样,请检查您的应用程序池标识和模拟设置。 – Dai 2012-08-15 23:59:14