1

我编写了这段代码来启动一个进程:

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;

但我仍然收到同样的错误......

你们有什么可以解决这个问题的吗?

4

1 回答 1

0

好的,现在已经解决了。

基本上我有两个问题:

  1. 启动过程的路径不正确(而不是folder/program.exe我输入错误folder/,我收到“访问被拒绝”,这让我的生活变成了一场噩梦(开始寻找权限、帐户等)。如果微软得到改进,那就太好了此错误类似于“进程的路径错误”)。

  2. 我必须将它作为本地服务(应用程序池)而不是应用程序池标识来运行。(并且不需要开始信息凭据)

涉及操作系统:Windows 2008 Server R1)

于 2012-08-16T14:04:50.610 回答