您的位置:首页 > 其它

WCF开发入门的六个步骤

2009-06-19 15:38 375 查看
在这里我就用一个据于一个简单的场景:服务端为客服端提供获取客户信息的一个接口读取客户信息,来完成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
3 using System.ServiceModel;
4
5 namespace ConWCF
6
7 { [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
8
9 public interface CustomerService
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 { [ServiceContract(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 {
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服务的基本地址,如下所示

<host>

<baseAddresses>

<addbaseAddress="http://localhost:8000/conwcfr"/>

</baseAddresses>

</host>

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

<endpointaddress=""

binding="wsHttpBinding"

contract="ConWCF.ICustomerService" />

D.配置文件

E.启动服服就简单了

ServiceHost host = new ServiceHost(typeof(CustomerService));

host.Open();

Console.WriteLine("客户信息服务已启动");

Console.WriteLine("按任意键结束服务!");

Console.Read();

host.Close();

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

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

<service

name="ConWCF.CustomerService"

异常信息: Service ''ConWCF.CustomerService'' has zero application (non-infrastructure) endpoints. This might be because no configuration file was found for your application, or because no service element matching the service name could be found in the configuration file,

文章出处:http://www.diybl.com/course/4_webprogram/asp.net/netjs/2008515/116962.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: