六步骤打造WCF客户端
创始人
2024-06-23 10:31:08
0

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. }  

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...