2011-06-30 21 views
4

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

+0

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

回答

5

你需要的东西是运行的服务,与元数据被公布。这可以是IIS,但也可以是任何other valid hosting option

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

2

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

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

更新:
Simple WCF Example

+0

当我右键单击并添加服务引用时,它会弹出此对话框,要求输入“地址”。我如何提供该地址?我需要先运行服务吗? –

+0

@Silverlight学生:是的。该服务需要运行,并且需要发布元数据端点。你会输入该地址。查看该服务的app.config/etc地址。 –

+0

@Silverlight学生:正如里德上面所说的,您需要先托管该服务,然后尝试将其托管在控制台应用程序中。好简单。 – Jethro

2

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

然后,应用程序将为其构建的WCF客户端从WSDL创建。

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

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

相关问题