【问题标题】:What is required to host a WPF application that provides a web service?托管提供 Web 服务的 WPF 应用程序需要什么?
【发布时间】:2011-04-13 21:35:13
【问题描述】:

我想构建一个可以安装在用户计算机上的 WPF Web 应用程序。因此,任何托管要求都将取决于用户的任何配置。托管 WPF 应用程序有哪些要求?

  1. 可以使用任何操作系统吗?
  2. 机器上是否需要安装.Net框架?
  3. 显然必须安装一些网络服务器,该技术对网络服务器有什么限制?必须是 IIS 吗?
  4. 还有别的吗?

【问题讨论】:

    标签: .net wpf hosting


    【解决方案1】:

    WPF 是一种客户端技术——不是真正的“托管”技术。通常,您会使用Windows Communication Foundation (WCF) 作为服务提供者。

    对于上述两种技术中的任何一种,系统都需要安装适当的 .NET 框架。 (如果您以 .NET 3.5 为目标,则需要 .NET 3.5 等。)WPF 需要 Windows 操作系统,因为 Mono 项目不支持它。 WCF is partially supported via Mono 但在其他平台上。

    【讨论】:

    • 同样的问题使用 Silverlight 或 Flash 怎么样?请注意,用户的 PC 不仅仅是从浏览器下载插件,实际上还需要托管和运行 flash 或 silverlight 应用程序。我想这与询问托管 flash 或 silverlight 应用程序(操作系统和语言运行时)的服务器要求是一样的,谢谢
    【解决方案2】:

    你会想要查看Windows Communication Foundation。它可以接受任何 .NET 应用程序并在其中托管 Web 服务(通过各种绑定)。

    任何可以承载 WCF(.NET Framework 3 及更高版本)的操作系统都应该足够了。显然,在客户端机器上公开 Web 服务会产生安全隐患/限制。

    【讨论】:

    • not WEB 服务... WCF 不再具有“WEB”,因为它不仅可以托管在 IIS (WEB) 上,还可以托管在任何其他通信协议、TCP IP、作为 Windows 服务、命令行等...
    • WPF 应用程序中的 WCF 正是他所寻找的。 WCF 可以使用基于 TCP/IP 的 HTTP 以符合标准的方式提供服务,除了 URL 之外,它的外观和感觉与 IIS 提供的 *.asmx 文件中描述的更传统的 Web 服务完全相同。使用 WCF,您可以在任何 .NET 语言应用程序中创建主机,并且不需要 IIS。
    【解决方案3】:

    你说的是 WPF 还是 WCF ??

    Windows Presentation Foundation 是 xaml 代码中的“Windows 窗体”,Windows Comunication Foundation 是 ASMX 和 WSE Web 服务的下一步。

    你的写作方式,你在谈论 WCF 而不是 WPF。

    WPF 是一个 Windows 应用程序,可以在任何安装了 .NET Framework 3.0+ 的 Windows 计算机上运行

    WCF 是一个服务应用程序,我会给你一个更好的答案,指向我在问题中的答案

    What does WCF mean?

    我希望这是你想要的。

    【讨论】:

      【解决方案4】:

      这和之前的问题一样,用 WPF 替换 Silveright。基本上相同的答案是正确的,但是内置的内容要少一些,以使您更容易;您仍然需要向与客户端无关的 服务器 发出请求。您还可以使用 .Net 框架的全部功能,而 Silverlight 只有一个较小的子集(不是真正子集,但我想你可以这么说)。这意味着客户端只需要安装 .Net 框架。

      至于客户端可以连接的服务器,它可以是任何东西,但它真的取决于你用它做什么。如果您想提供通用文件或标准 Web 服务,是的,任何 Web 服务器都可以做到这一点。由客户端(WPF 应用程序)解释它从服务器接收到的数据。

      在使用 WPF 时,您通常会受限于 Windows 操作系统,请参阅其他答案。

      然而,WPF 浏览器应用程序 (BAP) 并不是一项真正伟大的技术(不过,自从我上次看到它以来,它可能已经成熟了一点,那是很久以前的事了);如果用户必须将它安装在他的计算机上,那么为什么还要将它放在浏览器中呢?通过单击一次或其他方式部署它。

      【讨论】:

        猜你喜欢
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-21
        • 1970-01-01
        • 2011-04-29
        • 2017-01-20
        • 2020-04-27
        相关资源
        最近更新 更多