1

WCFサービスから新しいプロセスを開始しようとしています。その目的のために私は使用します

var process = Process.Start(
    new ProcessStartInfo { WorkingDirectory = config.WorkingDirectory,
                           FileName = config.WorkingDirectory,
                           Arguments = string.Format("{0} {1}", mpcName, jobId),
                           CreateNoWindow = false,
                           WindowStyle = ProcessWindowStyle.Hidden });

WebAppは、サーバーの管理者権限を持つユーザーアカウントにIDが設定されている別のAppDomainを使用しています。

Process.Startは、例外をスローして通知します

Server execution failed,    at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)

また、ProcessStartInfoでユーザーとパスワードを設定することもテストしました。パスワードの指定は非常にトリッキーで(SecureString)、それから私は受け取りました

The stub received bad data,    at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)

だから私はこの方法をスキップしました。

私の問題の理由と私がそれを修正する方法を知っていますか。

忘れました:Windows Server 2008 R2、IIS7を使用しています

4

2 に答える 2

1

わかった!

非常に奇妙ですが、必要な変更は呼び出すことだけでした

Process.Start(exeFullPath, args);

明らかに、ProcessStartInfoプロップの組み合わせは重要です。

于 2012-08-08T15:11:46.587 に答える
0

このq/aは、私のプロジェクトの1つでこの問題を修正するのに役立ちましたが、原因は異なります-

nCrunchによって実行されている統合テストからドメインユーザーとしてプロセスを開始しようとしていました。私の問題は本当に長い引数文字列でした。

(同じ引数文字列はユーザ​​ー/パスワードなしで機能します)

環境はWindows8、64ビットです。

とにかく、argデータを別の方法で渡す必要があります。

于 2015-03-19T17:29:34.547 に答える