2012-04-12 138 views
0

我正在構建一個Windows服務,但我想要獲得一些網頁來控制某些設置,獲取診斷信息等等......如何在windows服務中嵌入asp.net網站(反之亦然)

你會如何將一個asp.net網站和一個windows服務結合在一起? 我知道WCF可以自行託管到一個任意進程,但我可以用asp.net做同樣的事嗎?

另一個選擇是讓我的服務邏輯在asp.net網站的application_start方法中產生長時間運行的線程。但是,我沒有獲得啓動時自動啓動等功能的窗口服務。另一個問題可能是IIS可能決定回收這個過程。而且,我的服務需要打開一個原始的tcp套接字來接受連接。我可以在IIS中做到這一點嗎?

感謝

回答

3

我認爲這樣做最簡單,最可靠的方法是在同一臺服務器作爲Windows服務在IIS下運行的ASP.NET Web站點。 Windows服務可以託管一個可供ASP.NET應用程序訪問的WCF Web服務。

+0

只是打敗了我:-) – devstuff 2012-04-12 07:47:47

+0

啊,我當時沒有想到這一點!聽起來像最簡單的解決方案。 Thansk – Clement 2012-04-15 23:00:11

0

我會讓你的Windows服務自主託管一個WCF「配置」服務。如果UI位於同一臺計算機上,則只需在本地公開WCF服務。如果Windows服務需要打開一個單獨的原始套接字進行通信,則可能會在防火牆上打出一個洞。

然後像往常一樣,ASP.NET UI可以由IIS託管,並調用WCF方法來執行配置任務。

0

看起來你真的需要兩種東西 - 一種是在IIS中託管的Web應用程序,另一種是託管爲Windows服務的Windows服務。

然後,您可以通過某種方式在兩者之間共享數據,例如,通過數據庫。

相關問題