我不得不开发一种服务,它将通过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