WCF学习汇总20150904--参考[无废话WCF入门教程]
2015-09-04 23:53 一叶之秋愁上头 阅读(298) 评论(0) 收藏 举报1. 新建【WCF服务应用程序】
2. 自定义【wcf服务】,后缀svc
3. 在接口处定义
定义
[ServiceContract] 说明是Wcf接口,否则外部无法调用
[OperationContract] 说明是wcf接口方法,否则外部也无法调用
4. 将其svc定义初始页,F5进行执行
(二) IIS进行部署
类似网站安装一样。设定【端口】以及文件路径。浏览:
可能会报错【HTTP 错误 403.14 – Forbidden】需修改【目录浏览】设定:设定启动即可
(三) 创建WCF客户端程序
1. 直接引用服务:添加服务引用
自动生成App.Config文件进行配置
2. 使用svcutil.exe来生成文件与Config文件。在调用时一定要将其名称改成App.Config,需要引用【System.ServiceModel】
备注: svcUtil如何附加工具中可参考:
wcf Svcutil用法
http://www.cnblogs.com/scottckt/archive/2012/05/20/2510716.html
(四) 其它
Config文件配置: endpoint
address 地址
binding 绑定
contract 合同
相关范例
<endpoint address="http://192.168.1.16:6060/User.svc"
binding="basicHttpBinding"
contract="WcfClient.IUser"
/>
(五) WCF服务库与WCF服务应用程序
WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定义,可以直接看到运行的效果. 引用System.ServiceModel
WCF服务库,可以认为是一个包含WCF服务以及契约定义的类库。不能直接运行.引用System.ServiceModel, System.Runtime.Serialization
宿主程序
WCF在运行时必寄宿在“宿主程序”之上,WCF本身不能够独自运行(每个WCF服务必须宿主在一个Windows进程中)
WCF的宿主可以是 Windows 服务、COM+应用程序、WAS(Windows Activation Services,Windows进程激活服务)或IIS、Windows应用程序,或简单的控制台应用程序及任何.net程序。
(六) WCF服务库宿主—宿主程序
1. 控制台宿主---ServiceHost类
2. Winform宿主---注意其App.config文件配置:name, binding, contract必须与WCF服务库下名称一致。
WCF服务库
<service name="WcfLibrary.User">
<endpoint address="" binding="wsHttpBinding" contract="WcfLibrary.IUser">
其它
</endpoint>
</service>
App.Config配置注意
<service name="WcfLibrary.User">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8050/User" />
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" contract="WcfLibrary.IUser"></endpoint>
</service>
3. WAS宿主
确认安装IIS激活组件
a)打开控制面板--程序和功能--打开或关闭windows功能
Windows Process Activation Service;
Net.Msmq Listener Adapter;
Net.Pipe Listener Adapter;
Net.Tcp Listener Adapter; 需启动
Net.Tcp Port Sharing Service 需启动
b)确认支持Non-Http支持
c)net.tcp设置
d) 配置总算成功
4. 基于Windows服务—未实现
(七) WCF服务配置文件
1 客户文件位置
Web程序在Web.config中配置
应用程序中在App.config中配置
2 配置节点
包含在: <system.serviceModel> </system.serviceModel>之间
Service配置节[必须有]:配置服务、接口和终结点。
每个Service都会有以下两个属性。
name:名称空间.类名[服务的具体实现类]。
behaviorConfiguration:一个在behaviors节点中找到的名称。
Binding配置节[可有可无]:配置绑定,如http,tcp等。
Behavior配置节[可有可无]:配置行为,如认证等。
(八) WCF通信模式
1. 请求与应答
客户端发出请求、需等待服务端发出响应(异步调用除外),否则会假死状态。
2. 单向通信
客户端向服务端发送求,但是不管服务端是否执行完成就接着执行下面的程序。[OperationContract(IsOneWay = true)]
特点:使用 IsOneWay=true 标记的操作不得声明输出参数、引用参数或返回值
3. 双工通信
双工模式建立在上面两种模式的基础之上,实现客户端与服务端相互的调用。
支持回调的绑定有4种:
WSDualHttpBinding、
NetTcpBinding、
NetNamedPipeBinding、
NetPeerTcpBinding
服务端:
a) config需定义
<services>
<service name="WCFServerBoth.User">
<endpoint address="" binding="wsDualHttpBinding" contract="WCFServerBoth.IUser">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</service>
</services>
b) 服务端【接口类】添加
[ServiceContract(CallbackContract = typeof(接口))]
另定义一个接口
c) 服务端【实现类】添加
包含另一个接口的字段
构造函数时初始化:
callback = OperationContext.Current.GetCallbackChannel<接口>();
d) 客户端【实现服务器端未实现接口】
InstanceContext insContext = new InstanceContext(new 类());
无废话WCF入门教程
http://www.cnblogs.com/iamlilinfeng/archive/2012/09/26/2703759.html
WCF:如何将net.tcp协议寄宿到IIS
http://www.cnblogs.com/Gyoung/archive/2012/12/11/2812555.html
Windows服务发布WCF服务
http://www.cnblogs.com/stulife/archive/2011/04/14/2016118.html
源代码: 点这里








浙公网安备 33010602011771号