2010-04-06 21 views
1

我有一個Web服務應用程序的工作,我有1,可以採取任何東西從1小時到14個小時,取決於需要處理和數據調用Web服務這個月的時間。如何在IIS中創建能夠運行擴展過程

有沒有辦法在IIS中創建一個作業,可能是能夠運行這個擴展的過程。我還需要工作管理和報告,以便能夠看到工作是否正在運行,從而不會在其他工作上創建新的工作。

我將主要使用IIS6。並想使用C#代碼。

現在我使用的是Web服務調用,但我不喜歡的Web服務運行這麼長時間的思想,由於Web服務的性質,我不能分割功能任何更多。如果它們可用

IIS的工作將是真棒。有任何想法嗎?

回答

2

如果我是你,我會做一個由Web服務拉開序幕一個命令行程序。運行一個命令行應用程序是非常簡單的,基本上

Process p = new Process(); 

p.StartInfo.UseShellExecute = false; 
p.StartInfo.FileName = "appname.exe"; 
p.Start(); 

每個機器的工作進程的數量有限,他們是不是真的意味着長期運行的工作。

+0

這可能是一個很好的解決方案,與一個互斥體相結合,以確保只有1個正在運行的版本... – 2010-04-06 16:17:14

0

一個可能性,一點設置成本,就是讓你的處理作爲一個Windows服務運行,偵聽一個消息隊列(MSMQ或類似的),並讓你的web服務只是將請求發送到消息隊列中由處理服務處理。

監測工作比較困難;您的Web服務需要有一種查詢處理服務的方法來查明其狀態。這是一個IPC(進程間通信)問題,它具有許多不同的解決方案,並根據您的環境和環境進行各種折衷。

這就是說,對於簡單的情況下,馬特的解決辦法可能是足夠的。