WCF开发笔记(一)


1.在使用vs2008开始建立wcf项目的时候,会在项目中出现app.config文件,建立的这个wcf

library是可以直接通过vs2008集成的工具WcfTestClient.exe进行调试的,但是如果使用到

了DataTable等数据类型的话,就不能使用这个工具进行调试了。需要自己写数据契约了。

vs2008很方便,但是带给初学者一个误区就是在契约类库里进行配置,由于上面也说了会自

动出现app.config文件,这个配置应该在host中进行。这里为什么会有app.config呢?由于

需要通过WcfTestClient.exe进行调试,所以建立项目的时候就出现了这个配置。

 

2.在传递DataTable的时候需要给DataTable的TabelName赋值,或者装在DataSet中进行传输

 

3.在客户端创建代理类的时候有两种方式,第一种就是使用ChannelFactory,第二种就是直

接在项目中进行服务引用,这里具体讲述一下第一种方式:

使用ChannelFactory创建代理需要的条件
(1 服务端点的地址,即在宿主中用程序设置的或是配置文件中设置的。
(2 服务端点的绑定协议。
(3 服务契约的元数据,可以将服务契约复制一份到客户端或是在客户端添加对服务的引用。

下面的代码示例为通过ChannelFactory手动创建代理
EndpointAddress ea =
    new EndpointAddress("http://localhost:10000/Service/HelloWorldService");
IHelloWorldService proxy =
ChannelFactory<IHelloWorldService>.CreateChannel(new BasicHttpBinding(),ea);

EndpointAddress:端点地址,该类的实例作为CreateChannel方法的一个参数,实例化

EndpointAddress时给的地址要和宿主中设置的地址一致。
IHelloWorldService:这个是服务契约在客户端的一个副本,不包含具体的实现。
ChannelFactory:一个服务模型类型,可以产生客户代理和基础信道栈,使用该类的

CreateChannel可以生成代理,有两个参数,绑定类型和端点地址,绑定类型和端点地址要和

宿主中设置的一致。

 

4.EndPoint包含ABC,其中B表示Binding,B中包含了具有各自功能的BindingElement,比如

:安全、消息编码等。BindingElement管理两个对象ChannelFactory和ChannelListener。

 

5.Wcf中的会话管理有percall,session,single,个人认为可以和asp.net中的开发进行比较

percall看做page,session就看做asp.net的session,不过wcf的sesion是在客户端,

asp.net的session是在服务端,wcf的session进行开始和消亡控制,single可以看做

application

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值