【问题标题】:choosing the right WCF web service option选择正确的 WCF Web 服务选项
【发布时间】:2009-07-24 00:22:57
【问题描述】:

我刚开始使用 WCF Web 服务,我很难找到一个非常简单的教程,所以我想在这里问一些问题。

这是我的设置:我有一个 WPF 桌面应用程序,它需要通过 Internet 将数据发送到我们服务器上的 Web 服务。

在我看来,我至少有这四个选择:

  1. 我可以做新网站 --> WCF 服务
  2. 或新建项目 --> WCF 服务应用程序
  3. 或者我可以将项目添加到我现有的 WCF 服务应用程序的 WPF 桌面应用解决方案中
  4. 或者我可以为 WCF 服务库添加一个项目

谁能告诉我哪个是最好的选择,然后也许可以指出一个教程来帮助我沿着这条路开始?

【问题讨论】:

    标签: wcf web-services


    【解决方案1】:

    当然,这都是相当主观的

    1. WCF 服务网站 - 我避免与新网站有任何关系。它们是令人讨厌的可怕事物,它们不会按照我想要的方式构建,并假设目录中的所有内容都属于它们。当 MS 拿走 Web 应用程序时,有大量的投诉,最终它们被退回。我总是建议避免。
    2. WCF 服务应用程序创建一个新的解决方案,其中包含 WCF 服务应用程序。 (见 3)
    3. 这会添加一个新的服务应用程序。这包含 WCF 服务需要在 Web 上运行的所有内容,包括示例 SVC 文件、示例合同和一些预先配置的配置设置。
    4. 这是最基本的,根本没有托管应用程序,只有一个示例配置、一个示例合同和一个示例实现。如果您运行它,它会将其托管在 WCF 测试服务器中。

    如果您已经为您的桌面应用程序提供了解决方案,那么我建议您将一个新的 WCF 服务应用程序项目添加到您的解决方案中,并将所有内容保存在一个地方。您还可以将 Visual Studio 设置为在调试时同时运行这两个应用程序,这样您就可以实际检查一切是否正常运行。

    如果您正在编写一组单独的服务,供多个客户端程序使用,这些客户端程序都存在于单独的解决方案中,我会选择选项 2,然后当您需要更大的灵活性(例如在命令中托管服务)时选择选项 4行应用程序或 Windows 服务。

    【讨论】:

    • 好吧,我真的不清楚为什么我不应该将网站用于 Web 服务。这似乎是自然的契合。我犹豫要不要在我的桌面解决方案中创建一个新项目,因为我最终会将应用程序部署到船上的计算机上。它需要通过 Internet 与托管 Web 服务的岸上服务器进行通信。如果我将客户端和服务器端部分放在同一个解决方案中,我担心这会使部署变得复杂。
    • 为什么会使部署复杂化?无论如何,您肯定正在为您的 WPF 客户端创建安装程序,并且仅包括 WPF 位。将完整解决方案的所有部分保存在一个解决方案中是很自然的。仅仅因为它们在一起并不意味着它们都混在一个目录中。项目编译到自己的目录中
    【解决方案2】:

    这是一个很好的(如果不是有点过时的话)“hello world”WCF 教程:Windows Communication Foundation (Indigo) Hello World Tutorial:

    第一个教程将介绍 安装 WCF(作为 .net 的一部分 框架 3.0),包括 Visual Studio 2005 集成和制作 第一个简单的“Hello World”服务 演示一些关键 平台的概念。样品 都在 C# 中,但我可以分拆 VB.Net 等价物(如果有) 足够的兴趣。还有,以前 本系列的版本(针对 WCF 的各种预发布版本) 使用记事本和命令行 构建和编译 WCF 服务。这个 最新版本使用 Visual 工作室因为,尤其是与 RTM 发布,我怀疑是什么 大多数读者都会使用。如果你是 有兴趣打造您的服务 手工探索基础 的 WCF 更紧密(或获得 异步实现,就像你 会看到更远的地方),让我知道 我将更新早期的示例。 所以,有了这一切,让我们开始吧 安装和使用 WCF!

    【讨论】:

    • 感谢您的快速回复!我担心本教程没有使用任何内置的 WCF 项目模板——特别是自 .NET 3.0 以来发生了重大变化。
    • 不用担心模板 - WCF 的好处是模板在很大程度上是不必要的。我建议在没有模板的情况下进行设置,因为这样可以让您了解事情在幕后是如何运作的 - 您会惊讶于模板提供的功能如此之少!
    • 说真的,不。是的,没有模板也可以,但是当他回到这里问没有模板的问题时,人们会说“嗯?”
    • 那么如果我不应该使用新的网站wcf服务模板,我应该使用哪个模板呢?请参阅我上面的评论,以了解我不愿在我的桌面应用程序解决方案中添加 wcf 服务项目。
    【解决方案3】:

    我终于找到了一个非常清晰的关于支持 WCF Web 服务 here 的从头到尾的教程。我根据教程设置了所有内容,到目前为止效果很好。希望以后部署或维护不会有任何问题——猜猜我们会看到。

    顺便说一句,它使用了新网站 --> WCF 服务模板,这里的其他发帖人已经明确表示不要使用。我不想听起来有争议,但它似乎对我有用。

    【讨论】:

    • 我不认为有人说网站编译模型不起作用,而是说它有点笨拙。事实上,网站模型似乎是为新的 asp.net 开发人员创建的“入门”模型。根据您的服务应用程序的性质,随着您的应用程序架构变得更加复杂,您可能会在网站模型方面遇到挑战。我相信 Visual Studio 将允许您将网站转换为 Web 应用程序,只需很少的工作。我会和其他人一起建议你在某个时候进行这种转换;你的决定。
    猜你喜欢
    • 2013-07-11
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2019-11-19
    • 2010-10-20
    • 2013-01-27
    相关资源
    最近更新 更多