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

わかりました、これで解決しました。

基本的に、次の 2 つの問題がありました。

  1. 開始するプロセスへのパスが正しくありませfolder/program.exeんでした (間違って入力してfolder/「アクセスが拒否されました」というメッセージが表示され、私の人生は悪夢になりました (権利、アカウントなどを探し始めました)。Microsoft が改善されていればよかったのに)。 「プロセスへのパスが間違っています」のようなこのエラー)。

  2. アプリ プール ID ではなく、ローカル サービス (アプリ プール) として実行する必要がありました。(そして開始情報の資格情報は必要ありません)

関連するオペレーティング システム: Windows 2008 Server R1)

于 2012-08-16T14:04:50.610 に答える