4

Webサイトで注文するときに実行する必要のある.exeがあります。これをローカルでテストすると、IISExpressを使用して正常に機能します。IISに移動すると、失敗します。これは、管理者として実行するようにApp Poolを設定したかのように、アクセス許可エラーであると想定し、スクリプトが再び機能します。私たちが抱えている問題は、アプリプールがApplicationIdentityであるときに、管理者として.exeをどのように実行するかということです。次のコードを使用しています。

var process = new Process
                          {
                              StartInfo = new ProcessStartInfo
                                              {
                                                  FileName = executablePath,
                                                  Arguments = argumentList,
                                                  Domain = domain,
                                                  UserName = userName,
                                                  Password = securePassword,
                                                  UseShellExecute = false,
                                                  LoadUserProfile = true
                                              }
                          };

        process.Start();
        process.WaitForExit();
        process.Close();

.exeはUsersAppDataフォルダーに書き込もうとしているため、失敗します。サードパーティのアプリであるため、ソースコードを変更することはできません。

編集:明確にするために、procmonでユーザー名とパスワードを指定すると、ISURから実行されているように見えます。

4

2 に答える 2

1

これを修正するには、IIS AppPoolでユーザープロファイルを有効にし、書き込みを試みていたフォルダーでIISユーザーのアクセス許可を設定します。

ProcMonを使用して、プログラムが失敗した場所と、プログラムが書き込もうとしたフォルダーがC:\ Windows \ System32 \ config\systemprofileであったことを確認します。

于 2012-07-25T15:37:02.093 に答える
0

私は実際には覚えていませんが、そのうちの1つは100%動作しています(以前にこの問題が発生しました)

そのうちの1つが正しいものであることを教えてください。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2012-07-18T15:34:09.590 に答える