2011-07-11 27 views
0

我有C#.Net網絡服務,它應該連接到一些本地應用程序。 連接時,用戶可以使用此服務的網絡方法 將作業發佈到本地應用程序。一旦建立連接,它應該持續「永遠」(直到 服務器重新啓動:)),因爲有一些回調函數給予本地應用程序 ,並且如果服務未加載到內存(或斷開連接),本地應用程序可以' t調用回調函數。如何使C#.Net Web服務在IIS7中永久存在?

我不知道IIS7是如何工作的,何時加載和何時卸載服務的dll。 我需要它不要卸載服務。怎麼做?

非常感謝你, 問候

+0

您的Web服務可能需要實例化一個長時間運行的後臺線程,該線程將成爲您應用程序的主要部分。 Web服務然後變成與後臺線程交互的薄層。然後,可以關閉並打開多次Web服務層。 – MattDavey

+0

是的,謝謝,但他們都是我試圖避免的事情。我一直在想這件事,但我希望有些事情會花費更少的時間。 – theorem

+0

Btw,MattDavey,如果我這樣做,Web服務和線程應該如何通信?服務應該如何發送消息以線索做什麼? – theorem

回答

1

我建議你寫你在WCF Web服務,然後你可以承載您的服務作爲Windows服務或應用程序,甚至在正常的IIS。 WCF爲您提供了更多對Web服務的控制權,以及您如何託管它。

+0

是的,謝謝你,但他們都是我試圖避免的東西。我一直在想這件事,但我希望有些事情會花費更少的時間。 – theorem

1

我找到了解決方案 - Web服務將是永久的,所以將與本地應用程序連接,如果我將應用程序池空閒時間設置爲0(因此IIS7將永遠不會將其設置爲「睡眠」,並卸載服務的dll )。

+0

很高興你把它分類:)將來你可以通過確保一個web服務只是應用程序的實際內容上的一個非常薄的層來避免這樣的問題。 – MattDavey