2010-10-28 134 views
0

用戶(經過身份驗證的域管理員)應該能夠從IIS(7.x)aspx(c#)頁啓動批處理作業(通常是exe文件)時,正確的方法是什麼?這是一個內部網站。批處理作業必須以域管理員的身份在Web服務器上運行。網站池由AD網絡服務或類似的受限帳戶執行。從IIS啓動批處理作業

我可以想到的方法(及其缺點): 1.使用System.Diagnostics.Process.Start與另一個帳戶啓動exe文件。此功能在IIS 7.x中被禁用,我如何允許它? 2.創建一個調度任務並調用預定任務api。這個非託管dll會給VS編譯器提供警告,因爲從託管代碼調用是不安全的。 3.我想有一個更好的方法,因爲以前的建議似乎不安全或強大。

回答

2

我建議你有一個計劃任務或Windows服務,輪詢一個公共存儲庫以查看是否應該運行批處理作業 - 因爲批處理作業通常用於長時間運行的進程。

您可以將您希望從ASP.NET網站運行的批處理文件和參數的格式保存到數據庫(MySQL,Oracle,SQL Server等)中,然後讓您的Windows服務/計劃任務對此進行輪詢數據庫定期。

+0

很好的答案,謝謝。如果批處理作業應該在另一臺服務器上執行,則從Windows服務中查詢數據庫也可以驗證應用程序。 – 2010-10-28 12:40:59

+0

我支持這個答案,因爲從IIS運行批處理/可執行文件通常是一個糟糕的主意。它可能會危及安全性,穩定性和性能。如果您在單獨的流程中完成實際工作,並控制允許或禁止哪些操作,則更節省成本。 – chiccodoro 2010-11-16 09:30:47