【问题标题】:What to create using .NET 3.5? A Web Service or a Windows Service使用 .NET 3.5 创建什么? Web 服务或 Windows 服务
【发布时间】:2009-04-07 06:04:09
【问题描述】:

我必须创建一个可以为大约 100,000 个客户提供服务的 Web 服务。我一直在创建 Windows 服务并在其中使用 WCF 绑定。 Windows 服务使用 HTTP 绑定并提供可供任何可以使用 SOAP 交谈的客户端使用的 http 端点。 我有点困惑是应该创建一个 ASP.NET Web 服务还是一个 Windows 服务,因为它们都将提供一个 HTTP 端点。 我认为在 WCF 出现之前,Web 服务用于享受 HTTP 绑定,而 Windows 服务用于远程处理等。

如果两者都提供相同的 HTTP 端点,那么决定服务类型的标准应该是什么?

【问题讨论】:

    标签: .net wcf web-services


    【解决方案1】:

    你应该结合所有的答案。

    WCF 服务既可以作为 Windows 服务托管,也可以在 IIS 中托管。 IIS 为您提供了更多工具来扩展和处理大量请求。由于您的目标是网络,并且有可用的 IIS,因此请使用 IIS。

    JP 的回答包含关于如何在 IIS 中托管 WCF 的 link,这应该可以解决您在 sipwiz 的回答中提出的问题。

    所以继续创建一个 ASP.NET Web 应用程序。并在那里创建一个 WCF 服务(或将一个 WCF 服务库项目添加到您的解决方案中,并在您的 ASP.NET Web 应用程序中引用它。

    【讨论】:

      【解决方案2】:

      如果您正在构建一个需要为 10 万个客户端提供服务的大容量应用程序,那么您应该选择 IIS。 IIS 内置了许多设施来处理高负载以及身份验证和 SSL 证书等企业功能。如果您使用 Windows 服务,您将不得不自己推出很多服务。

      您可以将 WCF 与其中任何一种一起使用,因此您可以决定哪种应用程序类型更适合您,而且听起来绝对像 IIS。

      【讨论】:

      • 好的!在VS2008中,可以在Web下看到“ASP.NET Web Service Application”和“WCF Service Application”。在 WCF 下有一个 WCF 服务库,这让我很困惑。我认为我需要的是“ASP.NET Web Service Application”项目......
      • Gidon 发布了答案。您需要一个 ASP.Net 应用程序,然后是另一个 WCF 库项目,您将在 ASP 应用程序中使用它。
      【解决方案3】:

      您的服务所在的端点和 WCF 与 ASP.NET 服务是两个不同的东西。 Here is a decent article 关于 WCF 和 ASP.NET 服务之间的差异。由于您正在寻找高可扩展性,因此托管端点的位置对您来说很重要。在可扩展性和可靠性方面,您应该利用 IIS7 中内置的所有出色功能来托管您的端点。我认为没有充分的理由在您自己的流程中托管它。开发可以像 IIS7 一样容易水平扩展的东西将是很多工作。下面是a small article,介绍如何在 IIS 中托管 WCF 服务。

      【讨论】:

      • +1 虽然第一篇文章可以省略。因为它有点混乱。它显示了 ASP.NET Web 服务与 WCF... 最好显示一篇文章来展示基于 IIS 的 WCF 和基于 Windows 服务的 WCF 之间的区别。
      【解决方案4】:

      鉴于您正在做的事情的规模,您可能希望坚持使用 WCF。配置不同协议和其他框架功能(例如内置日志记录)的便利性应该可以很好地为您服务。

      使用 asmx 服务的一个优点是它很容易集成到网站项目中。如果您在使用共享主机的小型站点上,您可能无法运行 WCF 服务,但您将能够运行 asmx 服务。

      【讨论】:

      • 我以前创建 asmx 服务时,它们就像 Web 项目,而我创建的 WCF 服务是 Windows 服务。如果我创建托管在 IIS 上的服务或创建 Windows 服务,它会有什么不同吗?还是我自己搞糊涂了?
      • 我绝对推荐使用 sipwiz、jp 和 Gidon 建议的 IIS,而不是 Windows 服务。 “托管”一词有不同的含义;当我说“共享托管”时,我指的是第三方托管服务。这只是 asmx 得到更广泛支持的一般性观点。
      【解决方案5】:

      您应该在这里明确地考虑可扩展性。例如:如果您的系统必须使用 Web 场进行扩展,会发生什么情况? Win 服务场景如何适应这种情况?

      【讨论】:

        猜你喜欢
        • 2010-10-19
        • 1970-01-01
        • 2012-05-29
        • 2011-01-08
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 2010-10-19
        • 2012-08-26
        相关资源
        最近更新 更多