大比速:remoting.WCF(http).WCF(tcp).WCF(RESTful).asp.net core(RESTful) 近来在考虑一个服务选型,dotnet提供了众多的远程服务形式.在只考虑dotnet到dotnet的情形下,我们可以选择remoting.WCF(http).WCF(tcp).WCF(RESTful).asp.net core(RESTful)其中我考察的重点是前4项的效率差异,而在我的测试项目中他们共用同一个接口定义 [ServiceContract] publi…
近来在考虑一个服务选型,dotnet提供了众多的远程服务形式.在只考虑dotnet到dotnet的情形下,我们可以选择remoting.WCF(http).WCF(tcp).WCF(RESTful).asp.net core(RESTful)其中我考察的重点是前4项的效率差异,而在我的测试项目中他们共用同一个接口定义 [ServiceContract] public interface ICalc { [OperationContract] [WebInvoke(Method = "POST&q…
WCF 采用net.tcp协议实践   概述 与Socket相比,WCF真是爽得不得了,其基本指导思想为SOA——面向服务. 其基本配置在于ABC(Address,Binding,Contract),通常,只要这三个因素配置对了,那么,基本上就无限接近目标了. 剩下的配置,就可能是行为(Behavior),安全(Security)等. 在所有绑定中,为什么要选择net.tcp,是因为其比较快(我这也是道听途说,究竟有多快,没有进行过测试):但是,缺点就是,net.tcp方式只能是WCF对WCF的…
快速阅读 如何在wcf中用net tcp协议进行通讯,一个打开Wcf的公共类.比较好好,可以记下来. 配置文件中注意配置 Service,binding,behaviors. Service中配置endpoint 指明abc ,binding中配置tcp通讯的要关参数,behaivor中配置http请求的 地址 1.建立服务服务端 还是用上次的代码,提供一个user类,实现一个方法 [ServiceContract] public interface IUser { [OperationCont…
学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太少,直到现在,我也认为自己不过是初窥WCF的门径而已. 学以致用”,如果仅仅是希望能够在项目中合理地应用WCF,那么对于程序员而言,可以有两种选择,一种是“知其然而不知其所以然”,只要掌握了WCF的基础知识,那么对于一般的应用就足够了.要做到这一点就很容易了,微软秉承了一贯的方式,将WCF这门技术优雅地呈现给…
上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) WCF学习之旅—WCF服务的WAS寄宿(十二) 九. 无svc文件服务激活的原理: 在WCF4.0里,通过提供一种虚拟的服务类型映射机制来实现WCF服务的激活.我们可以在配置文件里指定服务类型和相对地址之间的映射关系.这就使得我们可以在不是要.svc文件的情况下,在WAS/IIS里托管WCF服务程序. 1)     关于…
什么是WCF Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有Http和Ftp的相关技术.WCF是对这些技术的统一 根据MSDN上的定义:WCF为.NetFramework 提供了一个基础,使其能够编写代码,以在组件.应用程序.系统之间进行通信.WCF的设计遵循的是面向服…
一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定义,可以直接看到运行的效果.此项目模板基于IIS托管的程序,如本系列的第一节所示.在开发基于IIS托管的WCF服务程序时,比较多见,自学的时候也可以使用这种类型,简单易懂. WCF服务库,可以认为是一个包含WCF服务以及契约定义的类库.不能直接运行,你可以在其他项目里引用,在宿主里启用托管这个库,有…
一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定义,可以直接看到运行的效果.此项目模板基于IIS托管的程序,如本系列的第一节所示.在开发基于IIS托管的WCF服务程序时,比较多见,自学的时候也可以使用这种类型,简单易懂. WCF服务库,可以认为是一个包含WCF服务以及契约定义的类库.不能直接运行,你可以在其他项目里引用,在宿主里启用托管这个库,有…
一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定义,可以直接看到运行的效果.此项目模板基于IIS托管的程序,如本系列的第一节所示.在开发基于IIS托管的WCF服务程序时,比较多见,自学的时候也可以使用这种类型,简单易懂. WCF服务库,可以认为是一个包含WCF服务以及契约定义的类库.不能直接运行,你可以在其他项目里引用,在宿主里启用托管这个库,有…
上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS7允许通过HTTP外的协议进行激活和网络通信.此环境适合开发可通过 WCF支持的任何网络协议(包括http.net.tcp.net.pipe.net.msmq)进行通信的WCF服务.部署简单.管理方便,这些网络协议在部署时可像Http一样,直接丢到IIS7上即可,我们在下面的例子中以net.tcp为…
理解WCF中的会话机制 在WCF应用程序中,会话将一组消息相互关联,从而形成对话.会话”是在两个终结点之间发送的所有消息的一种相互关系.当某个服务协定指定它需要会话时,该协定会指定所有调用(即,支持调用的基础消息交换)必须是同一对话的一部分.如果某个协定指定它允许使用会话但不要求使用会话,则客户端可以进行连接,并选择建立会话或不建立会话.如果会话结束,然后在同一个通道上发送消息,将会引发异常. WCF中的会话机制通过设置服务协定(ServiceContract)上的SessionMode的枚举值…
WCF服务配置是WCF服务编程的主要部分.WCF作为分布式开发的基础框架,在定义服务以及定义消费服务的客户端时,都使用了配置文件的方法.虽然WCF也提供硬编程的方式,通过在代码中直接设置相关对象的属性来完成服务端与客户端的配置,然而这种方式并不利于后期程序的更改和扩展.因此,配置文件给WCF程序编程带来了极大的便利性,通过配置文件配置服务,可提供在部署时而非设计时提供终节点和服务行为数据的灵活性.正因如此,WCF的框架有着极大的伸缩性和自定义性. WCF配置文件的结构如下图所示,包含3个部分,s…
在WCF初探-8:WCF服务承载 (上)中,我们对宿主的概念.环境.特点做了文字性的介绍和概括,接下来我们将通过实例对这几种寄宿方式进行介绍.为了更好的说明各寄宿环境特点,本实例采用Http和net.tcp两种服务通讯方式,同时寄宿在不同的宿主中.程序结构如下: 服务契约的接口和实现代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Ser…
前言 从我们学习WCF以来,就一直强调WCF是基于消息的通信机制.但是由于WCF给我们做了高级封装,以至于我们在使用WCF的时候很少了解到消息的内部机制.由于WCF的架构的可扩展性,针对一些特殊情况,WCF为我们提供了Message类来深度定制消息结构,以便我们拓展WCF的通信机制. 在之前的文章中,我们针对一些常用的WCF传递数据的方式进行了说明,比如数据协定和消息协定等.他们传递的数据最终都会转化为消息的实例.具体参照:        WCF初探-16:WCF数据协定之基础知识       …
转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法调用WCF服务,本文简单总结了一下调用WCF的一些方法(代理类,Ajax...),分享给大家. 开发工具调用WCF 这中方法很方便也很简单,很多工作VS就帮我们完成了.相信大家也不会对这种方法陌生.这里简单提一下.打开VS,在项目中添加服务引用:在config中自动声明了有关服务的节点信息,这样VS…
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; namespace HelloWCFService {…
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; namespace HelloWCFService {…
中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump文件类似于飞机的黑匣子,记录着生产环境程序运行的状态.本文主要介绍了调试工具WinDbg和抓包工具ProcDump的使用,并分享一个真实的案例.N年前不知谁写的代码,导致每一两个月偶尔出现CPU飙高的现象.我们先使用ProcDump在生产环境中抓取异常进程的Dump文件,然后在不了解代码的…
本文参考自http://www.cnblogs.com/wangweimutou/p/4377062.html,纯属读书笔记,加深记忆. 一.简介 任何一个程序的运行都需要依赖一个确定的进程中,WCF也不例外.如果我们需要使用WCF服务,那么我们就必须将服务寄宿与创建它并控制它的上下文和生存期的运行时环境当中,承载服务的环境,称之为宿主.WCF服务可以在支持托管代码的任意Windows进程中运行.WCF提供了统一编程模型,用于生成面向服务的应用程序.此编程模型保持一致且独立于部署服务的运行时环境…
文本参考自:http://www.cnblogs.com/wangweimutou/p/4365260.html 简介:WCF作为分布式开发的基础框架,在定义服务以及消费服务的客户端时可以通过配置文件的方式,来进行设置,这充分的体现了WCF的伸缩性和自定义性.当然WCF也提供硬编程的方式,通过在代码中直接设置相关对象的属性来完成服务端与客户端的配置,然而这种方式并不利于后期程序的更改和扩展. 一.WCF配置文件结构如下图所示,包含三个部分,services(服务).bindings(绑定).be…
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebRequest 和 HttpWebResponse,来判断一个网页地址是否可以正常访问. 1.举例 class Program { static void Main(string[] args) { string strUrl = "https://www.baidu.com"; HttpWeb…
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能第一时间发现问题. 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行:一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务. 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的数据接口,应该有五六年的历史了.我进入公司后,WCF服务的代码,一直由我一个人来维护.存在很多历史遗留问题,也有不同版本的共存. 如果java重写的话,其中的业…
一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类协定的定义,可以直接看到运行的效果. WCF服务库,可以认为是一个包含WCF服务以及协定定义的类库.不能直接运行,你可以在其他项目里引用,在宿主里启用托管这个库,有点类似于我们在Web/windows项目中应用的类库.考虑WCF服务设计的时候,服务类的定义为单独的库,可以为其它项目使用.提高代码的复用性.…
上接   WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以依靠IIS来管理宿主进程的生命周期.在开发和使用的过程与Web Service非常相似. 1) 为WCF服务创建.svc文件 对于ASP.NET Web Service的每个服务都具有一个.asmx文件,客户端通过访问.asmx文件实现对相应Web Service的调用.WCF服务与Web Serv…
上接  WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下图. (2)添加 System.ServiceModel.dll 的引用. (3)添加 WCF 服务类库(WcfServiceLib)的项目引用. (4)创建宿主程序,代码如下: using System; using System.Collections.Generic; using System…
上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样的优点,系统启动后,WCF服务也会跟着启动了,不用人工干预,也是一种较好的寄宿方式. (1) 在解决方案下新建控制台输出项目 WinServiceHosting.如下图. (2)添加 System.ServiceModel.dll 的引用. (3)添加 WCF 服务类库(WcfServiceLib)…
本章内容 请求/响应模式 单工模式 双工模式 WCF异步调用 请求与响应模式 请求/响应     请求/响应通信是指客户端向服务端发送消息后,服务端会向客户端发送响应.这也意味着在接收到服务的响应以前,客户端不会继续执行操作. [OperationContract] string getOrders(DateTime dt): 请求/响应模式是默认的消息模式.返回值是void,也属于请求/响应消息交换.除非客户端异步调用操作,否则客户端将停止处理,直到收到返回消息,即使该消息正常情况下为空时也是…
二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对应的文本框中输入“SCF.WcfService”,然后点击“确定”按钮.如下图. 第二步 , 安装Entity Framework 1)  使用NuGet下载最新版的Entity Framework 6.1.3.在解决方案资源管理器中——>在项目SCF.WcfService上鼠标右键单击——>弹出…
三.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据. 在第一个步骤中,你将 Windows 窗体项目添加到解决方案中,并将其设置为启动项目. 第一步,创建客户端应用程序 在菜单栏上,依次选择“文件”.“添加”.“新建项目”. 在“添加新项目”对话框中,展开 “Visual C#”节点,选择“Windows”节点,然后选择“Windows 窗体应用程序”. 在“名称”文本框中,输入 WinClient,然后…