私は、WCFサービス側のイントラネットクライアントからプロセスを実行したいと考えています。私の場合、クライアントはサーバーに、提供された資格情報のもとでサーバーのマシンに新しいプロセスを作成するよう要求します。 WCFサービスは、IIS 7.5でホストされていると私は、このコードIISでホストされているWCFサービスからプロセスを開始するにはどうすればよいですか?
var processInfo = new ProcessStartInfo("C:\\Windows\\System32\\notepad.exe")
{
UserName = "some user",
Password = MakeSecureString("some password"),
UseShellExecute = false,
LoadUserProfile = true
};
Process process = Process.Start(processInfo);
私が管理者ユーザーの下で実行されている自己ホスト型コンソールアプリケーションとしてWCFサービスをホストする場合、このコードは動作し、私はメモ帳を別のユーザーで起動参照を使用してプロセスを開始します。これは、例外なくIIS上で失敗しますが、プロセスはすぐに管理者権限を持つユーザで実行されているIIS、WCFアプリケーションで
process.HasExited = true;
process.ExitCode = -1073741502;
を終了し、web.configファイルで定義された完全な信頼を持っています。自己ホスティングアプリケーションを使用することはできません。これは、IIS WebファームでWebDeployなどの簡単な継続的な配信をサポートしていないためです。
Q: IISでホストされているWCFサービスからサーバー側でプロセスを開始するにはどうすればよいですか?
EDIT:
私は同様の問題と、このpostにつまずいたと私はまた、ユーザーに追加の権限を付与する試みCreateProcessWithLogonWとCreateProcessAsUserとProcess.Start及びP /呼び出しのためのすべての可能な変形を含むが、すべての方法を試みました。これは、男が投稿したものと同じエラーメッセージで動作します。
完全なソースコードサンプルを含む最終的なソリューションですか? – Kiquenet
汚れたハックがなければ不可能です。私はそれをしなかった。 – oleksii
汚いハックは? – Kiquenet