首页
学习
活动
专区
圈层
工具
发布

WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?

我们将为WCF服务创建或指定一个进程的方式称为服务寄宿(Service Hosting)。服务寄宿的本质通过某种方式,创建或者指定一个进程用以监听服务的请求和执行服务操作,为服务提供一个运行环境。...服务寄宿的方式大体分两种:一种是为一组WCF服务创建一个托管的应用程序,通过手工启动程序的方式对服务进行寄宿,所有的托管的应用程序均可作为WCF服务的宿主,比如Console应用、Windows Forms...除了包含WCF服务的一些基本信息,比如服务的名称、命名空间和CLR类型等,ServiceDescription还包含服务所有终结点和服务行为的描述。...在默认情况下,ConfiguraitonName的值为服务类型的全名(命名空间+类型名称),下面两种服务的定义是等效的。...客户端行为体现的是WCF如何进行服务调用的方式,而服务端行为则体现了WCF的请求分发方式。

1.2K60

ExtJs学习笔记(20)-利用ExtJs的Ajax与服务端WCF交互

相信不少人会心动的),不仅组件丰富,效果漂亮,而且ExtJs集成的Ajax功能可以方便的与.Net的WCF进行交互....这里我们将演示ExtJs的FormPanel从WCF加载数据,以及如何提交数据到WCF服务端 1.首先来定义一个用于传输信息的Class(实际开发中,可以是Linq to Sql的Class或任何可序列化的实体类...(初次接触Ajax与WCF交互的同志,建议参考一下老张的"Ajax与WCF交互-WCF之美(http://www.cnblogs.com/jillzhang/archive/2008/06/13/1219201...对象完成与WCF的交互(初次接触ExtJs Ajax的,可参见ExtJs学习笔记(5)_Ajax示例https://cloud.tencent.com/developer/article/1026518...最近学习了ExtJs和WCF后,个人强力推荐.net3.x时代web开发的绝佳组合: ExtJs(前端) + WCF(web服务层) + Linq To Sql(DAL,以后可能会换成Ado.Net Entity

1.1K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务

    在《基于IIS的WCF服务寄宿(Hosting)实现揭秘》中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side...对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个HttpHandler实现。...由于在ASP.NET兼容模式下,ASP.NET采用与.aspx Page完全一样的方式处理基于.svc的请求,换言之,我们就可以借助当前HttpContext的SessionState维护会话状态,进而创建一个支持会话的...WCF服务定义成“累积计算服务”:保留上一次运算的结果,并将其作为后续运算的操作数。...通过在CalculatorService上应用AspNetCompatibilityRequirementsAttribute实现对ASP.NET兼容模式的支持。

    912100

    WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务

    在《基于IIS的WCF服务寄宿(Hosting)实现揭秘》中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side...对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个HttpHandler实现。...由于在ASP.NET兼容模式下,ASP.NET采用与.aspx Page完全一样的方式处理基于.svc的请求,换言之,我们就可以借助当前HttpContext的SessionState维护会话状态,进而创建一个支持会话的...WCF服务定义成“累积计算服务”:保留上一次运算的结果,并将其作为后续运算的操作数。...通过在CalculatorService上应用AspNetCompatibilityRequirementsAttribute实现对ASP.NET兼容模式的支持。

    1.1K100

    WCF服务的批量寄宿

    如果采用自我寄宿的方式,我们需要为每个寄宿的服务创建ServiceHost对象。但是一个应用往往具有很多服务需要被发布,基于单个服务的ServiceHost的创建将会变成一个很繁琐的事情。...我们可以将需要需要批量寄宿的服务类型定义在配置文件中。很多人喜欢直接采用作为自定义的配置,但是我个人是既不推荐这种做法的,我觉得自定义结构化的配置节是更好的选择。...批量寄宿的服务类型就定义在具有如下结构的 配置节下。...在构造函数中,我们通过加载BatchingHostingSettings配置节的方式获取需要批量寄宿的服务类型,并为之创建ServiceHost。...三个服务以及包含的终结点定义在如下的配置中,而三个服务类型同时被定义在了我们自定义的配置节下。

    663100

    使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.在IIS中托管WCF服务3.使用PHP调用托管在IIS中的WCF服务

    上一篇中,使用控制台托管了WCF服务,但是如果想从PHP和java平台调用,必须将其托管到IIS中(并不是必须的,还是有其他的方式的 比如windows azure) 1.系统必备      首先,必须打开...2.在IIS中托管WCF服务      在IIS默认网站中添加应用程序emp,并在高级设置中,设置应用程序池为“ASP.NET v4.0”,并设置默认网站右键--编辑版定,在http类型中编辑IP地址和主机名...在新建的虚拟目录对应的实际目录中,添加web.config文件,配置wcf服务和终结点,并打开元数据公开,然而,因为这里不是使用常用的svc文件托管的服务,所以需要serviceActivations节点配置服务...3.使用PHP调用托管在IIS中的WCF服务 在PHP服务器中打开浏览器,并浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?...> 开启php服务器,访问页面,出结果: ? 下一章将续写java访问WCF服务的具体操作,可是已经到饭点啦。先做个决定。。。。。

    2.7K70

    谈谈WCF中的Data Contract(2):WCF Data Contract对Generic的支持

    通过第一部分的介绍,我们可以体会到,WCF 的Data Contract在CLR Type和Neutral Contract之间搭建了一座桥梁,弥合了.NET世界和厂商中立世界的差异。...通过WCF Data Contract我们将CLR Data Type暴露成一个厂商中立的数据结构的描述,同样通过WCF Data Contract我们将一个现有的CLR Data Type和既定的Neutral...在.NET中,基于Primary Type,比如Int32,String等等,他们具有一个简单的默认的序列化方式和结构,可以说他们不需要Data Contract。...对于一个Neutral Service Contract和Neutral Data Contract本身是不可能支持Generic的,也就是Neutral Contract只能是对一个具体的CLR Type...这无疑在.NET中是合法的,但是对于DataContract有有可能出现命名冲突。 这也就是为什么WCF默认机制下会为Data Contract Name添加一个额外hash value的原因。

    89270

    我的WCF之旅(3):在WCF中实现双工通信

    图2 订阅-发布 二、实例演示:创建基于双工通信的WCF应用 接下来我们通过一个的案例演示基于双工通信的WCF应用。为简单起见,我们沿用计算服务的例子。...WCF采用基于服务契约的调用形式,客户端正常的服务调用需要服务契约,同理服务端回调客户端依然需要通过描述回调操作的服务契约,我们把这种服务契约称为回调契约。...在WCF中,回调对象通过当前OperationContext的GetCallback方法获得(T代表回调契约的类型)。...而NetTcpBinding完全基于支持双工通信的TCP协议。...WCF通过加锁机制保证服务对象的独占性使用,也就是说在服务执行开始会对服务对象加锁,该锁在服务操作结束之后释放。 回到我们的例子,在Add操作执行过程中,服务端回调客户端操作进行运算结果的显示工作。

    1.5K100

    在 REST 服务中支持 CORS

    概述本节提供 CORS 的概述以及如何在 IRIS REST 服务中启用 CORS 的概述。CORS 简介跨域资源共享 (CORS) 允许在另一个域中运行的脚本访问服务。...在不使用跨域资源共享 (CORS) 的情况下,具有访问 REST 服务的脚本的网页通常必须与提供 REST 服务的服务器位于同一域中。...在某些环境中,将带有脚本的网页与提供 REST 服务的服务器放在不同的域中是很有用的。 CORS 支持这种安排。...如果请求被允许,则响应包含请求的信息。否则,响应仅包含指示 CORS 不允许请求的标头。启用 REST 服务以支持 CORS 的概述默认情况下,REST 服务不允许 CORS 标头。...但是,可以启用 CORS 支持。在 REST 服务中启用对 CORS 的支持有两个部分:启用 REST 服务以接受部分或所有 HTTP 请求的 CORS 标头。。

    3.1K30

    WCF技术剖析之十一:异步操作在WCF中的应用(上篇)

    对于I/O绑定型操作,我们可以充分利用多线程的机制,让多个操作在自己的线程并发执行,从而提高系统性能和响应能力。服务调用就是典型的I/O绑定型操作,所以多线程在服务调用中具有广泛的应用。...在本篇文章中,我们专门来讨论多线程或者是异步操作在WCF中的具体应用。 如果按照异步操作发生的位置,我个人将WCF应用的异步操作分为下面3种变体。...,从而实现异步服务调用; 单向(One-way)消息交换:客户端的信道通过单向的消息交换模式向服务端发送消息,消息一旦抵达传输层马上返回,从而达到异步服务调用的效果; 异步服务实现:服务端在具体实现服务操作的时候...图1清晰地揭示了以上3种异步场景在整个服务调用中所发生的时机。对于这3种典型的异步操作,它们之间是相互独立的。...图1 WCF多线程应用的三种典型场景 为了方便客户端进行异步的服务调用,最简便的方式就通过SvcUtil.exe这个代码生成工具帮助我们生成机遇异步调用的服务代理类。

    96280

    WCF技术剖析之十一:异步操作在WCF中的应用(下篇)

    说完了客户端的异步服务调用(参阅WCF技术剖析之十一:异步操作在WCF中的应用(上篇)),我们在来谈谈服务端如何通过异步的方式为服务提供实现。...WCF通过类型OperationDescription表示对服务操作的描述。...得到相应的MethodInfo对象后,同样通过反射调用服务实例。 二、如何创建异步服务 在了解了异步操作的定义和具体的实现原理之后,我们通过一个简单的实例演示异步操作在WCF应用中的实现。...本例子中,我们通过服务调用来读取服务端的文件,在实现文件读取操作的时候,采用异步文件读取方式。 先来看看服务契约的定义。...在客户端通过添加服务引用的方式生成相关的服务代理代码和配置。你将会发现客户端生成的服务契约和服务代理类中,会有一个唯一的操作Read。

    898100

    Wcf:可配置的服务调用方式

    添加wcf服务引用时,vs.net本来就会帮我们在app.config/web.config里生成各种配置,这没啥好研究的,但本文谈到的配置并不是这个。...先看下面的图: 通常,如果采用.NET的WCF技术来架构SOA风格的应用,我们会把项目做一些基本的分层,如上图: 01. contract层:通常定义服务的接口(即服务契约ServiceContract...03. host层:wcf最终需要一个宿主环境,如果是web应用,最简单的办法莫过于直接寄宿在IIS上 04. client层:即服务的消费方,如果是b/s应用,通常就是一个web application...服务的实现逻辑也可以方便的单独的修改替换(前提是服务契约相对稳定) 但如果应用的规模较小,出于成本考虑,完全有可能Service层和Website Client部署在一台机器上,虽然1个IIS上架2个站点完全没有问题...最好是在不修改原来代码的前提下,通过简单的配置文件修改,就能让原来远程调用WCF的方式,改成直接调用本地DLL程序集,反过来也一样,这样就比较灵活了。

    1.4K90

    业务服务的价值在哪里

    该读者表示他已经购买了《解构领域驱动设计》,故而特别指出希望赠送重印后的《解构领域驱动设计》。 非常感谢读者们的支持与厚爱。我必须指出,初印和重印的差别微乎其微,除了少量勘误,并无其他差异。...在领域驱动设计的背景下,业务服务是面向限界上下文的,为其编写的流程实际上是从限界上下文收到角色发送的服务请求后,需要依次执行的业务流程。...如此一来,对于业务服务的流程而言,一定是在收到服务请求之后开始执行的一系列连续的业务过程。因此,在业务服务的基本流程与替代流程中,根本不可能出现UI的操作,更不可能出现线下的流程。...04 业务服务的价值 在我的领域驱动设计统一过程方法中,产生设计驱动力的就是业务服务。...显然,业务服务在我提出的领域驱动设计统一过程中,简直无处不在!如想完整地了解业务服务的所有价值,那就请耐心地将我正在撰写的这组系列文章完整读完吧。

    2.7K20

    Ajax轮询定时的通过Ajax查询服务端

    轮询(polling) 客户端按规定时间定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。...ajax轮询的原理就是客户端定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接,然后客户端继续发送ajax请求,一直持续这个循环。...轮询的方式实现比较简单,但是比较浪费服务器的资源,服务器大多时间处理的是无用的请求。...最近在关注HTML5的一个新的协议websocket,实现了浏览器与服务器的全双工通信,可以很好地节省服务器资源。...他的原理是客户端向服务器发送请求后,如果服务器没有新数据就不做响应,等有新数据时,服务器就主动向客户端传递数据。

    2.4K60

    WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

    一、通过HttpModule实现服务寄宿 在默认的情况下,基于IIS的服务寄宿是通过一个特殊的HttpModule实现的,其类型为System.ServiceModel.Activation.HttpModule...我们可以通过一种简单的方式来证明这一点。 假设我们有一个WCF服务需要通过IIS进行寄宿,并把WCF服务相应的.svc文件定义在一个对应于某个IIS虚拟目录的ASP.NET Website中。...在默认的情况下,不论采用何种寄宿方式,WCF本身的行为应该保持一致。所以,让WCF 服务的行为独立于寄宿的环境与传输协议,是采用并行模式的主要原因。...但是在一个Web应用中,尤其是一些AJAX的Web应用,却明确地需要以一种ASP.NET兼容模式处理WCF Service请求。...WCF对此提供了支持,实现起来也很简单,对于编程来说,仅仅需要在Service类型加上一个特殊的AspNetCompatibilityRequirementsAttribute特性,并将RequirementsMode

    1.5K100
    领券