BAT
ローカルで引数を使用してファイルを開始するプロセスを開始すると、すべて正常に動作します。このサイトを Windows サーバーにアップロードしましたが、このプロセスの実行に失敗しました。コードを実行しているだけで、何も起こりませんでした。
UseShellExecute = false
ありとなしで実行してみましたcmd
...
他に何が確認できますか?
BAT
ローカルで引数を使用してファイルを開始するプロセスを開始すると、すべて正常に動作します。このサイトを Windows サーバーにアップロードしましたが、このプロセスの実行に失敗しました。コードを実行しているだけで、何も起こりませんでした。
UseShellExecute = false
ありとなしで実行してみましたcmd
...
他に何が確認できますか?
依存関係から始めます。例えば:
テストする1つの方法は、スクリプトの実行に使用したユーザーアカウントでそのサーバーにログオンし、スクリプトを自分で実行できるかどうかを確認することです。
bashスクリプトが失敗し、ユーザーに入力を求めようとしてハングしている可能性があります。UACがオンになっていて、アクションを実行するためにスクリプトに昇格されたアクセス許可が必要な可能性もあります。スクリプトを見ないとわかりにくいです。
ほとんどの場合、セキュリティ/権限の問題が発生しています。サーバーのイベント ログ (特にセキュリティ イベント ログ) を確認してください。また、可能であれば、サーバー上で SysInternals Process Monitor (procmon) を実行することもおそらく役に立ちます。
偽装を使用するように Web サイトを設定していない限り、Web サイトはローカルの制限付きアカウントを使用して実行されます。Windows Server 2008 の場合、DefaultAppPool はローカルIIS APPPOOL\DefaultAppPool
ID を使用しますが、これにはほとんどの場合、bash を呼び出す権限がありません。
アプリケーションをデバッグするために、Visual Studio がユーザー (おそらくローカル管理者) になりすますため、おそらくローカルの開発マシンで動作します。
これを解決するには、サイトのアプリケーション プールに使用されている ID にアクセス許可を付与して bash を実行するか、(おそらくこれの方が簡単です) アプリケーション プールの ID をドメイン ユーザー (または少なくともローカル ユーザー)。