是否可以创建部署为EXE或Windows服务的独立C#Web服务?

是否可以创建可以处理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#中完成这项工作。

有什么建议?

是的,有可能,你可能想看看WCF和自托管 。

是的,这是可能的(并且相当容易)。

这是一篇CodeProject文章,展示了如何在C#中创建基本的HTTP服务器。 这可以很容易地放在独立的EXE或服务中,并用作Web服务。

您可能想要检查的一种技术是WCF。 WCF可能会有点痛苦,但是Keith Elder在DNRTV上进行了一次精彩的截屏,展示了如何以非常简单的方式开始使用WCF。

http://www.dnrtv.com/default.aspx?showNum=135

您可以在.Net框架中查看HttpListener 。

我强烈推荐WCF。 它非常适合您所描述的产品。 有很多书可供选择。

当然,你可以做到这一点。 务必将项目的输出类型更改为控制台应用程序。 然后,在Main函数中,添加一个string []参数。 关闭在命令行上收到的某些开关,您可以分支到ServiceBase.Run以作为Windows服务运行或分支到其他一些代码来运行控制台应用程序。