六步骤打造WCF客户端

开发 开发工具
我们在这篇文章中将会通过六个步骤分别为大家介绍一下WCF客户端的创建方法,希望初学者们可以通过本文介绍的内容获得一些帮助。

WCF应用方法比较灵活,它可以帮助开发人员轻松打造一个跨平台的可依赖性的解决方案。那么如何才能正确的使用WCF开发呢?在这里我们将会为大家详细介绍一下WCF客户端的一些创建步骤。#t#

在这里我就用一个据于一个简单的场景:服务端为客服端提供获取客户信息的一个接口读取客户信息,来完成WCF开发入门的六个步骤。

WCF客户端创建步骤1. 定义WCF服务契约

A. 项目引用节点右键添加System.ServiceModel引用。

B. 在代码文件里,添加以下命名空间的引用

using System.ServiceModel;

using System;

C. 新建一个命为ICustomerService 接口,并添加一个获取客户信息的方法定义名为CustomerInfomation,返回字符串类型的客户信息。

D. 为接口ICustomerService添加ServiceContract的属性修饰使它成为WCF服务中公开的接口。

E. 为方法CustomerInfomation添加OperationContract的属性修饰使它成为WCF服务公开接口中公开的成员。

F. 代码:

  1. using System;  
  2. using System.ServiceModel;  
  3.  namespace ConWCF  
  4. { [ServiceContract(Namespace = 
    "http://Microsoft.ServiceModel.Samples")]  
  5. public interface CustomerService  
  6. {   
  7. [OperationContract]  
  8. String CustomerInformation();  
  9. }  

 

 

 

WCF客户端创建步骤2. 实现WCF服务契约

实现WCF服务契约很简单,就是实现上一步聚定义的WCF服务契约定义的接口就可以。下面看代码

  1. using System;  
  2. using System.ServiceModel;  
  3. namespace ConWCF  
  4. { [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]  
  5. public interface ICustomerService  
  6. {   
  7. [OperationContract]  
  8. String CustomerInformation();  
  9. }  
  10. public class CustomerService:ICustomerService  
  11. {  
  12. #region ICustomerService 成员  
  13.  public string CustomerInformation()  
  14. {  
  15. return "这是客户的信息!";  
  16. }  
  17. #endregion  
  18. }  

 

 

WCF客户端创建步骤3. 启动WCF服务

A.添加一个应用程序配置文件,文件件名为App.config。

B.配置WCF服务的基本地址,如下所示

 

  1. < host> 
  2. < baseAddresses> 
  3. < addbaseAddressaddbaseAddress="http://localhost:8000/conwcfr"/> 
  4. < /baseAddresses> 
  5. < /host> 

 

C.配置WCF服务的端口。Address=“”,意思就是使用上面配置的基本地址,当然也可以在这里指定。Bingding=“wsHttpBinding”,意思是WCF服务使用的是HTTP协议。再接下来就是配置WCF服务契约了(命名空间.服务契约接口名),如下所示:

 

  1. < endpointaddressendpointaddress="" 
  2. binding="wsHttpBinding" 
  3. contract="ConWCF.ICustomerService" /> 

 

D.配置文件

E.启动服服就简单了

 

  1. ServiceHost host = new ServiceHost(typeof(CustomerService));  
  2. host.Open();  
  3. Console.WriteLine("客户信息服务已启动");  
  4. Console.WriteLine("按任意键结束服务!");  
  5. Console.Read();  
  6. host.Close(); 

 

F.当服务启动时,在IE栏中输入: http://localhost:8000/conwcfr,将会收到一些帮助的提示信息。

G.异常:配置文件中的服务名称一定是:命名空间.实现WCF服务契约类的名称,否则将会发生找到不配置的异常。

WCF客户端创建步骤4. 创建一个基本的WCF客服端

WCF服务端创建好啊,创建客户端就容易多了,直接用SVCUTIL 命令行工具去完成代码的生成。我安装了WINDOWS SDK,其带了一个CMDShell 命令行工具,打开后就可以运行SVCUTIL命令,这个命令是运行于 framework 3.0以上环境。查看详细帮助信息可以输入:svcutil /?,回车。

1. 启动上几步骤创建好的WCF服务端。

2. 在CMDShell工具中用CD 转到你要存放客户端代码的目录下,输入以下命令生成代码和配置文件。

WCF客户端创建步骤5. WCF客服端基本配置

WCF客户端配置就是配置调用WCF服务端的协议,输传宽带,服务地址,安全等等信息。下面就上一步骤命令自动生成的配置文件。

  1. < ?xml version="1.0" encoding="utf-8"?> 
  2. < configuration> 
  3. < system.serviceModel> 
  4. < bindings> 
  5. < wsHttpBinding> 
  6. < binding name="WSHttpBinding_ICustomerService" closeTimeout="00:01:00" 
  7. openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
  8. bypassProxyOnLocal="false" transactionFlow="false" 
    hostNameComparisonMode="StrongWildcard" 
  9. maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
  10. messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" 
  11. allowCookies="false"> 
  12. < readerQuotas maxDepth="32" maxStringContentLength="8192" 
    maxArrayLength="16384" 
  13. maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
  14. < reliableSession ordered="true" inactivityTimeout="00:10:00" 
  15. enabled="false" /> 
  16. < security mode="Message"> 
  17. < transport clientCredentialType="Windows" proxyCredentialType="None" 
  18. realm="" /> 
  19. < message clientCredentialType="Windows" negotiateServiceCredential="true" 
  20. algorithmSuite="Default" establishSecurityContext="true" /> 
  21. < /security> 
  22. < /binding> 
  23. < /wsHttpBinding> 
  24. < /bindings> 
  25. < client> 
  26. < endpoint address="http://localhost:8000/conwcfr" binding="wsHttpBinding" 
  27. bindingConfiguration="WSHttpBinding_ICustomerService" 
    contract="ICustomerService" 
  28. name="WSHttpBinding_ICustomerService"> 
  29. < identity> 
  30. < userPrincipalName value="30DA1D0B1D1E4D2\Administrator" /> 
  31. < /identity> 
  32. < /endpoint> 
  33. < /client> 
  34. < /system.serviceModel> 
  35. < /configuration> 

 

 

WCF客户端创建步骤6. 使用WCF客户端

在客户端项目中项目引用节点右键添加System.ServiceModel引用. 添加第四部中创建的客户端代码文件和配置文件。 客户端调用服务端的服务,只要创建生成客户端类的实例就可调用了,但要确认服务端正在起用状态,如下

 

  1. using System;  
  2. namespace ConWCFCustomerClient  
  3. {  
  4. class Program  
  5. {  
  6. static void Main(string[] args)  
  7. {   
  8. CustomerServiceClient client = new CustomerServiceClient();  
  9. string message=client.CustomerInformation();  
  10. Console.WriteLine(message);  
  11. Console.Read();  
  12. }  
  13. }  
  14. }  

 

责任编辑:曹凯 来源: 博客园
相关推荐

2010-02-22 09:38:22

WCF开发

2010-02-23 14:03:53

WCF契约回调

2010-09-25 16:32:13

企业风险管理安全管理

2012-05-04 10:07:56

2021-11-15 23:44:56

网络安全零信任隐私

2010-09-24 15:50:03

2009-12-22 10:29:59

WCF客户端处理

2012-09-21 15:23:27

Java项目Java开发

2010-02-26 16:16:15

2009-12-21 10:00:46

WCF基础开发

2009-11-05 13:00:25

WCF客户端

2009-12-07 18:26:36

WCF客户端

2009-12-22 18:18:11

WCF客户端编程

2013-10-09 10:07:01

PS设计

2009-12-08 16:47:06

WCF IP

2010-02-25 16:20:02

WCF客户端

2009-12-21 15:53:56

WCF获取客户端IP

2010-02-22 11:10:17

WCF获取客户端IP

2009-11-09 15:49:01

WCF异步调用

2009-11-05 13:08:44

WCF客户端配置
点赞
收藏

51CTO技术栈公众号