2012-10-07 50 views
0

我已經離開了網絡開發6/7年,現在我完全失去了關於如何做事情。我正在瀏覽關於HTML5的一些教程,但我希望能在這裏得到幫助。啓動webserver啓動長時間運行的進程?

我試圖建立一個(POC)網站,它將讓「服務器」監控它運行的應用程序,以及某個應用程序運行時更改託管頁面的內容。我不希望模型是PageLoad-> Application Check,我寧願有一些像ServerStart-> ApplicationHook-> Callback-> Model-> PageLoad-> CheckModel,所以當服務器啓動鉤子的回調會更新頁面用於更新的模型。儘管這種架構可能並不是最好的方式,但總的來說,我只是想找一種方法來讓服務器啓動時啓動一個長時間運行的進程。最終,我將把它移到一個Windows服務,它在發生更改時調用Web服務,但對於POC,我寧願遠離多個應用程序進行交互,因爲Windows服務也需要由服務器「調用」,並且現在我想不出一個簡單的實現。

因此,如果您正在構建依賴於服務器上的事件並需要能夠與服務器上的應用程序分別與單個頁面交互的頁面,但該頁面需要能夠「發佈」信息回到那個應用程序你會怎麼做?

我的解釋已經有點到處了,所以我希望在某個時候我的問題已經清楚地發現了! :)

回答

1

也許有替代品,但我認爲這種設置的唯一選擇是Windows服務。如果您需要與其他組件通信,請使用套接字或在已知端口上偵聽HTTP請求。做你從Web應用程序描述的是不是不可能的,但它肯定是非常困難的,因爲它是控制過程中發生的事情的Web服務器(應用程序池可執行文件),而不是你的代碼。在Windows服務中,您可以控制。

編輯:這裏是一個article關於託管一個Web服務的不同選項 - 在我看來,使用Windows服務確實是您的最佳選擇。您可能可以使用WCF服務,但您必須與服務器上的本地應用程序交談,並且使用Windows服務時該部分可能更容易完成。

+0

我該如何讓我的Windows服務中託管的WCF服務監視我的應用程序?我無法找到WCF的onstart ...或者我應該讓Windows服務來完成這項工作?如果是這樣,我如何讓WCF服務和Windows服務相互通信? – Faraday

+0

@Vijay我對WCF不是很熟悉,所以我無法回答你的問題。我只是創建一個獨立的Windows服務,然後讓它聽一個端口。必要時WCF服務可以打開該端口並向Windows服務發送消息。關鍵在於一個Web應用程序在應用程序池內運行,如果應用程序池被回收,則Web應用程序也會被回收。另外,應用程序池可能會在第一次請求之前啓動。如果您需要啓動時運行的服務,則Windows服務是您的最佳選擇。 – xxbbcc

+0

@Vijay我編輯了一篇文章鏈接的答案,看看是否有幫助。 – xxbbcc