最近有個需求,需要在一個服務器上按需運行某些執行程序。考慮到盡量減少客戶端的操作(安裝等),我們決定開發B/S模式的系統。
雖然我曾經開發用JSP+tomcat開發過類似的程序,也知道用XMLRPC之類的技術也可以,但本這最簡化原則(因為服務器上的操作系統是Windows 2003 SERVER,運行Java還要裝JRE和WEB容器),我同意使用ASP開發。(咳,IT程序員就是“挨踢的藍領”。呵呵,純屬玩笑,我最經程序員,我崇尚技術!)。
以前用ASP3.0開發過小東東,這次想省事。本來用ASP3.0開發個服務器端運行SHELL的代碼很簡單,兩三行,用WScript.shell就好, 但是了好就總是提示沒有權限。對虛擬目錄的權限進行了設置,還是不行。應該是IIS的設置問題,本人技術不行呀!那位高手如果解決了這個問題,煩請給我一個詳細的解釋(圖文並茂最好,如果願意。我的郵件
[email protected],謝謝先!)。
在ASP3.0下經過了幾次失敗,最後決定用ASP.Net。呵呵,MICROSOFT Teched 2007洗腦起了作用。嘗試了幾下,解決了問題。下面把一些體會寫了出來。
實現該功能主要用到System.Diagnostics.Process,感興趣的朋友可以去MSDN查看更多的資料。
具體代碼如下:
Public void RunCmd() {
string exec = “notepad.exe”
System.Diagnostics.ProcessStartInof psi = new System.Diagnostics.ProcessStartInfo(exec);
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardInput =true;
psi.RedirectStandardError = true;
//啟動process
System.Diagnostics.Process proc = System.Diagnostics.Process.Start(psi);
}
這段代碼是用C#寫的。我做過測試,沒問題,大家可以試試。