![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WCF
三五月儿
修行者 服务端开发(java/.net)
展开
-
一个简单的WCF实例
1 新建空解决方案WCFExample在解决方案WCFExample下新建以下项目:Service(输出类型为“类库”):WCF服务程序。Business(输出类型为“类库”):供WCF服务调用的具体业务实现。Host(输出类型为“控制台应用程序”):WCF服务宿主程序。Client(输出类型为“Windows应用程序 ”):调用WCF服务的客户端程序。项目结构如下图所示。原创 2014-03-08 21:55:33 · 4943 阅读 · 4 评论 -
Wcf信道和信道管理器
Wcf中的信道完成各种通信相关的任务,信道由信道管理器创建。 在不同的消息交换模式下,信道在消息的发送端和接收端所起的作用是不同的。这些各异的信道使用信道形状来描述,不同形状的信道具有不同的作用。对于请求/回复模式下,发送端的信道负责发送消息请求,信道使用接口IRequestChannel表示,接收端的信道负责回复请求,信道使用接口IReplyChannel表示;对于双工通信模式下,消息交换双方地原创 2017-01-08 15:12:19 · 904 阅读 · 0 评论 -
Wcf消息筛选
Wcf使用soap消息进行通讯,客户端的消息到达服务端后,消息筛选是如何进行的呢?所谓的消息筛选指的是根据消息进行终结点的选择。服务寄宿时,一个服务可以添加多个终结点,通过listenUri可以指定终结点的监听地址以实现物理地址和逻辑地址的分离。现假设服务寄宿时,为服务添加三个地址不一样的终结点,地址分别为127.0.0.1:7777,127.0.0.1:8888,127.0.0.1:9999,并将原创 2017-01-06 15:33:50 · 493 阅读 · 0 评论 -
Wcf的优点
提到wcf的优点必须去看看它的前辈们。因为只有通过对比才能更好的了解wcf的优点。它的前辈们有ASP.NET Web Service、WSE、.Net Remoting、COM/DCOM、MSMQ。COM/DCOM不用说了,现在基本上不怎么使用了,它最大的特点是跨语言的组件可以相互访问,对于这点,wcf可以轻松实现。MSMQ基于消息队列进行通信,提供异步消息发送、对离线消息的支持、发送方和接收方解耦原创 2017-01-06 14:44:05 · 2546 阅读 · 2 评论 -
使用tcpTrace监听wcf消息
下面是服务端的配置文件。服务端终结点地址是http://localhost:3721/calculatorservice,逻辑地址个物理地址统一,物理地址就是监听地址。<configuration> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="metadataBeha原创 2016-12-25 14:50:53 · 1474 阅读 · 0 评论 -
发布wcf服务元数据
wcf中元数据的发布通过一个特殊的服务行为ServiceMetadataBehavior来实现。本文实例为服务应用ServiceMetadataBehavior服务行为,并采用基于HTTP-GET获取方式,元数据的发布地址通过ServiceMetadataBehavior的HttpGetUrl指定。在服务成功寄宿后,我们可以在浏览器中通过HttpGetUrl指定的地址来获取服务的元数据,这样就可以得原创 2016-12-25 12:00:15 · 1456 阅读 · 0 评论 -
使用控制台程序寄宿wcf服务时,不正确使用Console.Read()方法导致服务寄宿失败
使用控制台程序寄宿wcf服务时,为了程序不退出,会使用Console.Read()方法来等待用户输入以确保程序不会退出。 刚开始代码是这样实现的。using (ServiceHost host = new ServiceHost(typeof(CalculatorService))){ host.Opened += delegate { Console.Wr原创 2016-12-25 11:43:35 · 1408 阅读 · 0 评论 -
wcf服务寄宿时,如何指定终结点三要素才不会出错
wcf中服务寄宿时,怎样制定服务契约、绑定和终结点地址。情形一:服务契约相同、绑定相同、地址相同using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService))){serviceHost.AddServiceEndpoint("Artech.WcfServices.Service.Interface.ICalc原创 2016-12-23 16:34:36 · 2426 阅读 · 0 评论 -
什么是wcf
Wcf是分布式、可扩展、可配置、统一的编程模型,是多种既有技术的综合。在wcf身上,你可以找到ASP.NET Web Service、WSE、.Net Remoting、COM/DCOM、MSMQ等技术的身影。ASP.NET Web Service 跨平台,基于开放的标准,包括XML、XSD、SOAP和WSDL等。WSE(Enhancement) 对ASP.NET Web Service的增强,原创 2016-12-21 14:52:46 · 1029 阅读 · 0 评论 -
我了解的Wcf
1、Wcf是微软推出的一套“分布式”“通信”框架 Wcf是微软推出的一套“分布式”“通信”框架。提到通信,无外乎就是将消息从一个地方传递到另一个地方,wcf中将消息的发送者定义为客户端,消息的接收者定义为服务端。为了达到消息传递的目的,需要解决3个主要问题:where、how及what。Where指的是“消息传递至何处”。How指的是“如何传递消息”。What指“通信双方对消息结构的定义”以及“消原创 2016-12-21 14:04:07 · 552 阅读 · 0 评论 -
wcf消息交换模式
wcf客户端调用服务端服务,使用soap message进行交互,这个消息交互过程称为消息交换(Message Exchange)。wcf支持3种不同的消息交换模式Message Exchange Pattern(MEP):(Request/Reply),Request/Forget(One-way)和Duplex。这些消息交换模式需要底层传输协议的支持,wcf使用以下4个传输协议:Http,TCP原创 2016-11-23 15:59:21 · 977 阅读 · 0 评论 -
wcf会话管理
wcf中,客户端调用服务,先创建服务代理,服务代理再将服务调用的soap消息发送给服务端,服务端监听到客户端的请求后,初始化服务,同时构建相关的上下文(Context),这个上下文被称为实例上下文(Instance context),这个过程称为服务激活(Activation)。不同的激活方式体现为不同的实例上下文模式(Instance context model)。不同的实例上下文模式体现为pro原创 2016-11-23 13:55:05 · 836 阅读 · 0 评论 -
wcf序列化和消息编码
1、wcf松耦合的实现 wcf是基于服务架构(soa)的一种实现,soa由若干既独立又相互关联的子系统构成,子系统之间通过服务调用来沟通,当子系统a调用子系统b提供的服务时,子系统a是client,子系统b是service。 wcf中,使用服务契约(service contract)来实现客户端对服务的调用。可以将服务契约理解为接口,定义了服务能够提供的操作,它决定了客户端调用服务的方式,只要服原创 2016-11-22 16:22:22 · 1418 阅读 · 0 评论 -
WCF入门概念归纳
wcf是微软提供的分布式通讯框架,本质上提供一个跨进程、跨机器以致跨网络的服务调用。 wcf的核心是服务,服务需要寄宿在宿主程序中才能被访问,宿主程序可以是自寄宿的控制台程序、windows桌面程序,也可以是IIS程序。服务寄宿后,会公布一个或多个终结点用于服务调用者访问服务,客户端同样使用终结点与服务端进行通讯。 终结点包含地址,契约和绑定三要素。地址用于解决服务寻址问题(where);绑定用原创 2016-11-21 12:47:25 · 723 阅读 · 0 评论 -
使用IIS承载WCF服务
1 新建空解决方案WCFServiceExp。在解决方案下面新建Windows应用程序WCFClient和WCF服务应用程序WCFService。程序完工后的结构如下图所示。 2 实现WCFService新建WCF服务应用程序WCFService在解决方案上右击--选择“添加”--选择“新建项目”--在已安装的模板中选择“WCF”--选择“WCF服务应用程序”原创 2014-03-23 10:27:02 · 2174 阅读 · 0 评论 -
wcf中的数据报信道与会话信道
理解数据报信道和会话信道,就得了解会话的含义。wcf中的会话指通信参与者之间共享的上下文,也就是客户端和服务端之间共享的一些状态信息。换句话说,服务端具有某种能力,能够区分不同的客户端,并为不同的客户端保持状态。延伸到会话信道,一个会话信道将与一个客户端进行绑定,只能为一个客户端进行服务。但是数据报信道却没有这个限制,因为数据报信道不需要在客户端和服务端之间保持状态,这样的话不同的客户端可以共享相同原创 2017-01-08 16:03:29 · 820 阅读 · 0 评论