【问题标题】:How to add service reference in client project?如何在客户端项目中添加服务引用?
【发布时间】:2011-06-30 17:10:21
【问题描述】:

我对 WCF 完全陌生,所以如果您发现我在这里做的完全错误的事情,请指出。我创建了一个 WCF 服务项目(我的服务类源自 ServiceBase 类),端点地址绑定设置为 basicHttpBinding。现在我需要创建一个可以从该服务调用一些 API 的客户端应用程序。我的问题是,在我的客户端应用程序中,如何向该服务添加服务引用。我是否需要先在 IIS 下发布此服务(这意味着我的机器上也必须有可用的 IIS)或者是否还有其他添加服务引用的方法。

【问题讨论】:

  • 通常是你可以运行调试的 wcf 项目,它会启动 cassini 服务器,然后你可以生成服务参考。或者你可以使用 iis express。或者您可以只使用共享 dll 并使用 ChannelFactory 而不是生成服务引用。

标签: c# wcf wcf-client


【解决方案1】:

您需要一些东西来运行服务,并发布元数据。这可以是 IIS,也可以是任何 other valid hosting option。

正是出于这个原因,我经常编写一个简单的控制台应用程序来自托管 WCF 服务。它使调试和在早期开发阶段更新服务引用变得超级容易,并且在同时处理客户端和服务器时可以显着简化工作。

【讨论】:

    【解决方案2】:

    您不必在 IIS 下发布它,使用 WCF,您可以在控制台应用程序或 Windows 窗体应用程序中或作为 Windows 服务或在 IIS 下托管您的服务。

    在您的客户端应用程序中,您只需右键单击并添加服务引用。

    更新:
    Simple WCF Example

    【讨论】:

    • 当我右键单击并添加服务引用时,它会弹出此对话框,要求输入“地址”。我如何提供该地址?我需要先运行服务吗?
    • @Silverlight 学生:是的。该服务需要运行,并且需要发布一个元数据端点。你会输入那个地址。查看服务的 app.config/etc 中的地址。
    • @Silverlight 学生:正如 Reed 上面所说,您需要先托管服务,尝试将其托管在控制台应用程序中。很容易。
    • 您是说先将我的服务项目转换为控制台应用程序吗?虽然我正在阅读您提供的简单 WCF 示例链接以查看这是否有助于创建控制台应用程序,但可能是一个示例可能会有所帮助
    • @Silverlight 学生,如果您在完成该示例后仍需要帮助,请告诉我。
    【解决方案3】:

    通常,您会在 IIS 下的最终位置托管 WCF 服务(因为它也可以为您确定 URL),但是,您也可以直接从 Visual Studio 中运行它,然后在您的客户端中的 Visual Studio,您可以右键单击“引用”并选择“添加服务引用”,并将其指向您的 WCF 服务,无论它在何处运行。

    然后,应用程序将在 WSDL 之外为其构建 WCF 客户端。

    请注意,它还会在您的 app.config 中设置该服务的 URL,因此如果您没有在其最终生产 URL 中托管该服务,则当您将其移动到客户端时,您必须在客户端中更改该 URL生产。

    所以更直接地回答你的问题;是的,当您从客户端应用程序“添加服务引用”时,您的服务应该正在运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 2013-07-14
      相关资源
      最近更新 更多