一、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>
運行效果: