是否可以创建可以处理Web服务请求的C#EXE或Windows服务?显然,某种嵌入式,可能有限的Web服务器必须是EXE /服务的一部分。 EXE /服务不必依赖于安装IIS。优选地,嵌入式Web服务可以处理HTTPS / SSL类型连接。
场景是这样的:客户想要在他们的公司机器上安装一个小代理(Windows服务)。代理将有两个主要任务:1)随着时间的推移监视系统并收集某些数据,以及2)响应Web服务请求(SOAP -v-REST仍然被讨价还价)以进行数据收集或系统更改。客户喜欢Web服务API的概念,因此可以编写任意数量的客户端(使用任何语言)来访问企业计算机上运行的各种代理。他们希望安装相对轻松(安装.NET,某些程序集,服务,修改Windows防火墙,启动服务),而无需安装和配置IIS。
我知道我可以用Delphi做到这一点。但是如果可能的话,客户更愿意在C#中完成这项工作。
有什么建议吗?
答案 0 :(得分:13)
是的,您可能需要查看WCF和Self Hosting。
答案 1 :(得分:5)
是的,这是可能的(并且非常简单)。
这是一个CodeProject article,展示了如何在C#中创建基本的HTTP服务器。这可以很容易地放在独立的EXE或服务中,并用作Web服务。
答案 2 :(得分:3)
您可能想要查看的一项技术是WCF。 WCF可能会有点痛苦,但是Keith Elder在DNRTV上进行了一次精彩的截屏,展示了如何以非常简单的方式开始使用WCF。
答案 3 :(得分:1)
您可以查看.Net框架中的HttpListener。
答案 4 :(得分:1)
我强烈推荐WCF。它非常适合您所描述的产品。有很多books可用。
答案 5 :(得分:1)
当然,你可以做到。务必将项目的输出类型更改为控制台应用程序。然后,在Main函数中,添加一个string []参数。关闭在命令行上收到的某些开关,您可以分支到ServiceBase.Run以作为Windows服务运行或分支到其他代码以运行控制台应用程序。
答案 6 :(得分:1)
这个问题有些老了,但是由于我前一段时间需要类似的东西,所以感觉这个问题仍然很重要。
我用NancyFx和OWIN编写了一个小的Rest-API。 OWIN是.Net应用程序和Web服务器之间的标准接口。使用OWIN,可以创建self-hosted WEB-API。另一方面,南希是
用于构建基于HTTP的轻量级,低礼仪的框架 .NET ¹
上的服务
这两个的结合使创建自托管的C#Web服务成为可能。 我很确定,到现在为止,创建这样的东西还有更多的可能性,但是由于我这样使用它,所以我认为信息可能对某人有用。