System.Diagnostics.Process does not work on IIS 7
目前有個需求需要在 Asp.net MVC網頁上按個連結就可以直接把標籤列印出來,所以要使用 Process這個類別
寫法大同小異,如下
string command = string .Format("tscgin.exe {0} {1}", "mo_print.ini", fileName);
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.WorkingDirectory = "c:\somewhere"
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c " + command;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
但在 IIS和本機(或 Server)目錄需要設定權限的動作,如下
- 建一個新目錄存放 exe or bat file,並設定權限 NetworkService或建立一個帳號具有執行、寫入、讀取
- 至 IIS 找出應用程式的 Application Pool後點選"進階應用",找到 "識別"選項,使用者選擇 NetworkService或你自己建立的新帳號即可
沒有留言:
張貼留言