簡體   English   中英

通過IIS上的ASP.NET/C#在服務器上運行進程

[英]Running Process on Server via ASP.NET/C# on IIS

我想做的是,單擊按鈕時運行一個位於Web服務器桌面上的批處理文件。 到目前為止,這就是我所擁有的。

ProcessStartInfo psi = new ProcessStartInfo("Notepad.exe");
   psi.WorkingDirectory = @"C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories";
   psi.UseShellExecute = false;
   psi.UserName = "administrator";  //username
   psi.Password = secure;  //secure string
var process = Process.Start(psi);

當我調試它時,它確實可以實現我想要的功能,但是當我在IIS(localhost:81)上訪問該站點時,該批處理文件將永遠不會運行。 我已經嘗試了ProcessStartInfo和Process的許多不同變體,但都沒有碰到運氣。 我已經測試了用戶名和密碼,它們也都是正確的。

我沒有收到任何錯誤,該按鈕只是觸發了頁面回發。

我已授予IUSR和IIS_IUSRS對該文件的權限,但仍然無法運行。 我還刪除了用戶名和密碼,並將UseShellExecute設置為true,但這也無濟於事。

編輯:

似乎每個人都認為它具有一定的權限。 關於允許IIS打開進程需要做什么的任何想法?

提前致謝!

只需將第三行更改為:

  psi.UseShellExecute = true;

或閱讀這篇真正完成工作的文章:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;889251

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM