我不得不開發一種服務,它將通過TCPListener持續監聽通過GPRS廣播的消息。對於TCPListener服務器,我應該使用Web服務還是使用Windows服務?
我應該使用哪種項目類型,Windows服務或Web服務?
如果可能,您能提供一個簡短的代碼示例嗎?
我不得不開發一種服務,它將通過TCPListener持續監聽通過GPRS廣播的消息。對於TCPListener服務器,我應該使用Web服務還是使用Windows服務?
我應該使用哪種項目類型,Windows服務或Web服務?
如果可能,您能提供一個簡短的代碼示例嗎?
術語「Web服務」通常指在端口80上偵聽標準HTTP請求的系統,通常使用SOAP,JSON或普通舊XML。微軟提供了幾個框架來發布和使用.NET中的Web服務,包括WCF,IIS以及通過tcplistener
來滾動自己的Web服務。
「Windows服務」是一個長期的過程,可以在系統啓動時自動啓動。服務本身沒有任何內在的溝通機制:你必須自己寫。
所以你要考慮你的GPRS系統將使用什麼樣的通信協議。如果它正在廣播高級別的例如HTTP POST數據,那麼託管在IIS上的WCF端點可能是最簡單和最快捷的方式。或者,如果您的GPRS系統正在通過已知端口進行TCP數據包的低級廣播,則最有可能需要創建Windows服務,然後在服務啓動時創建一個tcplistener
。
用於創建Windows服務的Visual Studio嚮導將爲您創建在服務啓動時執行的代碼所需的腳手架。這裏有一個很好的演練:http://www.csharp-examples.net/create-windows-service/。
Visual Studio項目類型「Web Service項目」爲託管在IIS中的網站或應用程序創建項目,因此這可能會誤導有關此答案中所述的「Web服務」的一般術語。我也投票使用Windows服務項目 – eFloh
謝謝Jeremy&eFloh – Laxman