是否有可能创建一个C#EXE或Windows服务可以处理Web服务请求? 显然,某种嵌入,或许有限,Web服务器必须是EXE /服务的一部分。 该EXE /服务将不必依靠安装IIS。 优选地,嵌入式Web服务可以处理HTTPS / SSL类型的连接。
该方案是这样的:客户希望在他们公司的计算机上安装一个小代理(窗口服务)。 代理将有两个主要任务:1)监控系统,随着时间的推移和收集数据的某些部分; 2)Web服务请求响应(SOAP -V- REST仍可以讨价还价约)用于数据采集和系统变化的目的。 客户所喜欢的网络服务API的想法,这样任何数量的客户端(在任何语言)可以写成进军在公司机器上运行的各种药剂。 他们希望安装相对无痛(安装.NET,一些组件,服务,修改Windows防火墙,启动服务),而不需要IIS安装和配置。
我知道我可以用Delphi做到这一点。 但客户宁愿在C#如果可能的话做了。
有什么建议?
是的,这是可能的,你可能想看看WCF和自我托管 。
是的,这是可能的(并且相当容易)。
这里是一个CodeProject上的文章展示如何在C#中的基本的HTTP服务器。 这很容易放在一个独立的EXE或服务,并作为一个Web服务。
你可能要检查出一种技术是WCF。 WCF可以是一个痛苦位进入,但那里DNRTV基思·埃尔德演示了如何在一个非常简单的方式开始使用WCF以上是一个伟大的截屏。
http://www.dnrtv.com/default.aspx?showNum=135
你可以看看HttpListener在.NET Framework。
我会强烈建议WCF。 这将适应得非常好成产品如你所描述。 有相当数量的书籍可用。
当然,你可以做到这一点。 一定要改变项目控制台应用程序的输出类型。 然后,在你的主要功能,添加一个字符串[]参数。 关闭一些你收到命令行开关,您可以跳转到ServiceBase.Run作为Windows服务或分支运行一些其他的代码运行控制台应用程序。
文章来源: Is it possible to create a standalone, C# web service deployed as an EXE or Windows service?