1

IIS バージョン 6.1 SP1 を搭載した Windows Server 2008 R2 64 ビットで .bat ファイルを実行しようとしています。私のローカル マシンではすべてがうまくいきますが、サーバーでは作成されるプロセス (cms.exe *32) を除いて何も起こりません。

私の検索によると、主な問題は権限です。セキュリティ上の理由から、IIS が既定でバッチ ファイルへのアクセスをブロックしているといくつかの場所で読みました。私は問題を理解していますが、私の場合、セキュリティ上の問題はないので、ファイルを実行したいと思います。


私が見つけたソリューションは、偽装を実装することで合格しました。つまり、次のことを意味します。

  1. web.config を変更 -> identity impersonate="true"

  2. IIS サイト認証を変更 -> ASP.NET の偽装を有効にする

  3. ファイルとフォルダにアクセス許可を与える

  4. ステップ1の別のバージョンを試しても-> identity impersonate="true" userName=************


IIS ユーザーに権限を付与します。

  1. サービスが IIS 管理サービスのデスクトップと対話できるように設定する

バッチを呼び出すには、C# で次のコードを使用します。

private void StartPervasive(string npu) 
{
   
    try 
    {
       
        ProcessStartInfo startInfo = new ProcessStartInfo(ConfigurationManager.AppSettings.Get("PervasivePath"));
    
        //startInfo.UseShellExecute = true;
        //startInfo.WorkingDirectory = ConfigurationManager.AppSettings.Get("PervasiveWorkingPath");
        //startInfo.WindowStyle = ProcessWindowStyle.Normal;
        //startInfo.RedirectStandardInput = true;
        //startInfo.RedirectStandardError = true;
        //startInfo.RedirectStandardOutput = true;
    
        //startInfo.FileName = ConfigurationManager.AppSettings.Get("PervasivePath");
     
        startInfo.Arguments = npu;
        Process myProcess = Process.Start(startInfo);
     
        //StreamReader sr = File.OpenText(ConfigurationManager.AppSettings.Get("PervasivePath"));
        //StreamWriter sw = myProcess.StandardInput;
    
        //while (sr.Peek() != -1)
        //{
        //    string readed = sr.ReadLine();
        //    readed = readed.Replace("%1", npu);
        //    sw.WriteLine(readed + Environment.NewLine);
        //}

        //myProcess.WaitForExit();
        //myProcess.Close();
    
   } 
   catch (Exception ex) 
   {
     throw ex;
   }
}

また、.exe ファイルを含む他のファイルを実行しようとしましたが、結果が得られなかったことにも注意してください。

説明されている手順に対するアドバイス、ヘルプ、または修正をいただければ幸いです。

4

2 に答える 2

0

これはあなたが探しているものではないかもしれませんが、役立つかもしれません。サーバー上にスケジュールされたタスクを作成してBATファイルを実行することをお勧めします。ユーザー権限を設定して、実行するタイミングをスケジュールすることができます。

お役に立てれば。

于 2012-09-14T13:03:07.550 に答える
0

以下は、同じ問題に対する非常に詳細な回答があると思われる別の Stackoverflow 記事へのリンクです。

IIS7 で Exe ファイルが起動しません...

于 2012-09-14T15:56:42.877 に答える