一、WCF Service简介
WCF(Windows Communication Foundation)是Microsoft为构建面向服务的应用提供的分布式通信编程框架,使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。WCF是微软整合了微软分布式应用程序开发中的众多成熟技术,如Enterprise Sevices(COM+)、.Net Remoting、Web
Service(ASMX)、WSE和MSMQ消息队列。
通讯范围:可以跨进程、跨机器、跨子网、企业网乃至于Internet;
宿主:可以是ASP.NET(IIS或WAS),EXE,WPF,Windows Forms,NT Service,COM+;
通信协议:TCP,HTTP,跨进程以及自定义。
二、 创建WCF Service
下面演示一下如何搭建一个WCF服务,简单地输出一个字符串。
第一步:打开visual studio 2010创建一个WCF服务应用程序。
第二步:修改Service1.svc和IService1.cs文件。
创建好的项目默认的文件目录如下:
在Service1.svc中添加方法
public string HelloWCF()
{
return "Hello WCF";
}
在IService1.cs中添加接口:
[OperationContract]
string HelloWCF();
第三步:创建一个网站的虚拟目录指向WCF的项目工程。
在控制面板中找到Internet信息管理器并打开,在Default Web Site节点下创建一个虚拟目录,命名为wcf,路径指向本例子的web应用程序的代码,并点击确定。
三、 调用WCF Service
第一步:在Windows Phone项目中添加WCF服务引用,生成代理。
引用成功后会产生一个ServiceReferences.ClientConfig文件,文件如下:
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding
name="BasicHttpBinding_IService1"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security
mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<!--http://localhost/wcf/Service1.svc是指WCF服务的地址-->
<endpoint address="http://localhost/wcf/Service1.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1" contract="WCFService.IService1"
name="BasicHttpBinding_IService1" />
</client>
</system.serviceModel>
</configuration>
第二步:调用WCF服务。
WCFDemo.WCFService.Service1Client proxy = new WCFService.Service1Client();
proxy.HelloWCFCompleted += new EventHandler<WCFService.HelloWCFCompletedEventArgs>(proxy_HelloWCFCompleted);
proxy.HelloWCFAsync();
void proxy_HelloWCFCompleted(object sender,
WCFService.HelloWCFCompletedEventArgs e)
{
textBlock1.Text = e.Result.ToString();
}
XAML代码
<Grid x:Name="ContentPanel" Grid.Row="1"
Margin="12,0,12,0">
<TextBlock
Height="63" HorizontalAlignment="Left"
Margin="60,47,0,0" Name="textBlock1" Text=""
VerticalAlignment="Top" Width="249" />
</Grid>
运行效果: