我按照MSDN的这个指南来托管一个简单的 WCF 服务。
但是客户端使用它的正确方法是什么?
最常用的选项是:
svcutil
. 这意味着它是为您自动生成的,因此它非常易于使用,并且如果您的服务的客户端位于系统外部,则主要使用它。但是由于它是生成的代码,因此您失去了一些控制权。您可以在MSDN上继续您的学习路径。
有几种选择:
注意:前 2 个选项需要已经运行的服务。
就个人而言,我更喜欢通过创建ChannelFactory<T>
然后创建与之通信的通道来使用 WCF 服务。
例子:
ChannelFactory<IProcessor> factory = null;
try
{
var netTcpBinding = new NetTcpBinding("netTcpBinding_BigPackets");
factory = new ChannelFactory<IProcessor>(netTcpBinding);
var processor = factory.CreateChannel(processorAddress);
var result = processor.Process(request);
return result;
}
catch (CommunicationException)
{
if (factory != null)
{
factory.Abort();
factory = null;
}
throw;
}
finally
{
if (factory != null)
{
factory.Close();
}
}
可以在 MSDN 中找到很好的示例:http: //msdn.microsoft.com/library/ms576132.aspx
另外,我建议您参考 IDesign 页面中的 WCF 示例:http: //idesign.net/Downloads
将服务引用添加到您的客户端项目并选择Discover/Services in solution。然后选择您的服务,您将能够通过编写这种代码来访问所有服务方法:
using(var myClient = new YourServiceReference.YourService())
{
myClient.MyMethod()...
}
这是关于使用 WCF 服务的好例子 http://wcfbyexample.codeplex.com/
您可以通过从中提取 WCF XML 或使用 WCF 测试客户端来使用 C# 代码。转到 Visual Studio 并使用 WCF URL 添加“服务引用”以添加服务,它将为您生成服务代码。