我必须创建一个可以为大约100,000个客户端提供服务的Web服务。我已经创建Windows服务很长一段时间了,并在其中使用WCF绑定。 Windows服务使用HTTP绑定并提供可以使用SOAP进行通信的任何客户端都可以使用的http端点。 我是否应该创建ASP.NET Web服务或Windows服务有点困惑,因为它们都将提供HTTP端点。 我认为在WCF出现之前,Web服务曾经享受过HTTP绑定,而Windows服务则用于远程处理等。
如果两者都提供相同的HTTP端点,那么决定服务类型的标准应该是什么?
答案 0 :(得分:2)
如果您正在构建需要为100k客户端提供服务的高容量应用程序,那么您应该选择IIS。 IIS内置了许多工具来处理高负载以及身份验证和SSL证书等企业功能。如果您使用的是Windows服务,那么您自己就可以使用Windows服务。
你可以使用WCF,因此决定哪种应用程序类型更适合你,它听起来像IIS。
答案 1 :(得分:2)
服务所在的端点和WCF与ASP.NET服务是两回事。 Here is a decent article关于WCF与...之间的差异ASP.NET服务。托管端点的位置对您来说非常重要,因为您正在寻找高可伸缩性。您应该利用IIS7中内置的所有优点来提供可扩展性和可靠性来托管您的端点。我认为没有充分理由在您自己的流程中托管它。开发可以像IIS7一样轻松扩展的东西将是一项很大的工作。以下是关于如何在IIS中托管WCF服务的a small article。
答案 2 :(得分:2)
你应该把所有的答案结合起来。
WCF服务既可以作为Windows服务托管,也可以作为IIS托管。 IIS为您提供了更多工具来扩展和处理大量请求。由于您的目标是Web,并且可以使用IIS,因此请使用IIS。
JP的答案包含一个关于如何在IIS中托管WCF的link,这应该可以解决你在sipwiz的答案中遇到的问题。
继续创建一个ASP.NET Web应用程序。并在那里创建一个WCF服务(或向您的解决方案添加WCF服务库项目,并在您的ASP.NET Web应用程序中引用它。
答案 3 :(得分:0)
鉴于您正在做的事情的规模,您可能希望坚持使用WCF。配置不同协议和其他框架功能(如内置日志记录)的简便性可以为您提供良好的服务。
使用asmx服务的一个优点是可以轻松集成到网站项目中。如果您使用的是具有共享主机的小型站点,则可能无法运行WCF服务,但您将能够运行asmx服务。
答案 4 :(得分:0)
你应该明确地考虑可扩展性。例如:如果您的系统必须使用Web场扩展,会发生什么? Win服务方案如何适应这种情况?