1、 在这里我就用一个据于一个简单的场景:服务端为客服端提供获取客户信息的一个接口读取客户信息,来完成WCF开发入门的六个步骤。 1.定义WCF服务契约 A.项目引用节点右键添加System.ServiceModel引用。 B.在代码文件里,添加以下命名空间的引用 using System.ServiceModel; using System; C.新建一个命为ICustomerService 接口,并添加一个获取客户信息的方法定义名为CustomerInfomation,返回字符串类型的客户信息。 D.为接口ICustomerService添加ServiceContract的属
2、性修饰使它成为WCF服务中公开的接口。 E.为方法CustomerInfomation添加OperationContract的属性修饰使它成为WCF服务公开接口中公开的成员。 F.代码: 1 using System; 2 3 using System.ServiceModel; 4 5 namespace ConWCF 6 7 { [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] 8 9 public interface CustomerS
3、ervice 10 11 { 12 13 [OperationContract] 14 15 String CustomerInformation(); 16 17 } 18 19 } 20 2.实现WCF服务契约 实现WCF服务契约很简单,就是实现上一步聚定义的WCF服务契约定义的接口就可以。下面看代码 1 using System; 2 3 using System.ServiceModel; 4 5 namespace ConWCF 6 7 { [Service
4、Contract(Namespace = "http://Microsoft.ServiceModel.Samples")] 8 9 public interface ICustomerService 10 11 { 12 13 [OperationContract] 14 15 String CustomerInformation(); 16 17 } 18 19 public class CustomerService:ICustomerService 20 21 {
5、22 23 #region ICustomerService 成员 24 25 public string CustomerInformation() 26 27 { 28 29 return "这是客户的信息!"; 30 31 } 32 33 #endregion 34 35 } 36 37 } 38 39 3.启动WCF服务 A.添加一个应用程序配置文件,文件件名为App.config。 B.配置WCF服务的基本地址,如
6、下所示
8、称一定是:命名空间.实现WCF服务契约类的名称,否则将会发生找到不配置的异常。
9、 name could be found in the configuration file, or because no endpoints were defined in the service element.
这个异常搞得我昏了半天,害得我以为从IIS、端口到配置环境排除错误,就是搞不明白为什么会跟类的命称联系起来。不过,最终也解决了。
4.创建一个基本的WCF客服端
WCF服务端创建好啊,创建客户端就容易多了,直接用SVCUTIL 命令行工具去完成代码的生成。我安装了WINDOWS SDK,其带了一个CMDShell 命令行工具,打开后就可以运行SVCUTIL命令,这个命令是运 10、行于 framework 3.0以上环境。查看详细帮助信息可以输入:svcutil /?,回车。
1. 启动上几步骤创建好的WCF服务端。
2. 在CMDShell工具中用CD 转到你要存放客户端代码的目录下,输入以下命令生成代码和配置文件。
D:"client>svcutil /language:c# /out:CustomerClient.cs /config:app.config http:/
/localhost:8000/conwcfr
上面命令指定了要生成代码的语言,代码文件和配置文件名,WCF服务端地址,注意运行命令时必须确定WCF服务端正在运行中。
5.WCF客服端 11、基本配置
WCF客户端配置就是配置调用WCF服务端的协议,输传宽带,服务地址,安全等等信息。下面就上一步骤命令自动生成的配置文件。
1
2 12、1: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"
13、10 messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
11 allowCookies="false">
12 14、meTableCharCount="16384" />
14 15、"None"
18 realm="" />
19 16、 17、 name="WSHttpBinding_ICustomerService">
29 18、端
1. 在客户端项目中项目引用节点右键添加System.ServiceModel引用.
2. 添加第四部中创建的客户端代码文件和配置文件。
3. 客户端调用服务端的服务,只要创建生成客户端类的实例就可调用了,但要确认服务端正在起用状态,如下
1using System;
2
3namespace ConWCFCustomerClient
4
5{
6
7 class Program
8
9 {
10
11 static void Main(string[] args)
12
13 {
14
15 CustomerServiceClient client = new CustomerServiceClient();
16
17 string message=client.CustomerInformation();
18
19 Console.WriteLine(message);
20
21 Console.Read();
22
23 }
24
25 }
26
27}
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818