2016-04-04 31 views
0

Windowsサーバー2012のIIS8でasp.netアプリケーションをホストしています。 このアプリケーションはバッチファイルを実行するとします。IIS 8(windows server 2012)はバッチファイルを実行できません

私はデバッグモードでビジュアルスタジオでアプリケーションを実行すると完璧に動作します。しかし、IISにアップロードすると、アプリケーションはバッチファイルを実行できなくなります。

私はバッチファイルをexeファイルで変更しようとしました。同じ問題。

バッチファイルには、IISにするアプリケーション(WCFアプリケーション)から実行するとします

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
       proc.StartInfo.WorkingDirectory = @"C:\path"; 
       proc.StartInfo.FileName = @"C:\path\executer.bat"; 
       proc.Start(); 
       proc.Close(); 

助けてください、

+0

このバッチファイルがどのように実行されるのかについて、より詳細な情報を提供する必要があります。 ASP.NETページから呼び出されますか?おそらく、Webサービスの一部ですか?私たちが多くの助けをすることができるようにここには足りないだけです。 –

+0

私は詳細を追加しました。 –

+1

バッチファイルが起動していないことが確かな場合は、起動するコードの周りにいくつかのtry-catchブロックを置き、確立されたログ情報を取得しようとします。サーバーでは、サイトを実行しているアカウントコンテキストがバッチファイルのホストパスにアクセスできないアクセス許可の問題を処理する可能性が最も高いです。 –

答えて

0

ほとんどの場合、あなたが経験している問題は、権限によるものです。あなたのアプリケーションが実行されているIISアプリケーションプールのアカウントと、バッチファイルを実行する権限またはそのバッチファイル内のコマンドがそのアカウントにあるかどうかを確認する必要があります。

Visual Studioで実行している場合は、IIS Expressを対話ユーザーとして実行している可能性があります。

デフォルトでIISで実行している場合、コードを実行する権限を持たないApplicationPoolUserアイデンティティの下で実行されており、ファイルへのアクセス権がありません。バッチファイルへの適切なファイルアクセス権を持つ別のアカウントと、バッチファイル内のコマンドを実行する権限を明示的に設定していない限り、IIS内からバッチファイルを実行することはできません。その変更を変更するには、アプリケーションプールのユーザーIDを、ディスク上のバッチファイルの読み取りと実行の両方の権限を持つユーザーに付与し、バッチファイルで実行中のものを実行するために必要な権限を持ちます。

-1

コードは正常に動作しています。かもしれ.MYバッチファイルが

BATCHLOG.exeは、いくつかの回はバッチファイルのみ

BATCHLOG.exeという名前の実行

ある

start "" BATCHLOG.exe 

である前に私が直面したバッチ・ファイル内のいくつかの問題があります

は、Windowsスケジューラで正しく機能しないため、この場合もあります。

0

アプリケーションによってアクセスされるフォルダまたはファイルに、AppPoolUserアカウントに付与されたアクセス権があることを確認します。また、アプリケーションのリソースフォルダも確認することが重要です。たとえば、ログを作成する場合は、appPoolユーザーアカウントにそのファイルに書き込むための十分なアクセス権を与えてください。

関連する問題