首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

在《基于IIS的WCF服务寄宿(Hosting)实现揭秘》中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side...)模式和ASP.NET兼容模式。...:CalculatorService 服务的实现和.svc都定义在一个ASP.NET Web站点项目中。...关于Session识别信息的保存,ASP.NET有两种方式:Cookie和URL,前者将其放到Cookie中,每次HTTP请求将会携带该Cookie的值,后者则将其作为请求URL的一部分。...那么对于ASP.NET兼容模式下的WCF也一样,要想让服务端能够识别会话,就需要让每个服务调用的HTTP请求携带Session的识别信息,我们也可以通过传递Cookie的方式来解决这个问题。

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

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

    在《基于IIS的WCF服务寄宿(Hosting)实现揭秘》中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side...)模式和ASP.NET兼容模式。...:CalculatorService 服务的实现和.svc都定义在一个ASP.NET Web站点项目中。...关于Session识别信息的保存,ASP.NET有两种方式:Cookie和URL,前者将其放到Cookie中,每次HTTP请求将会携带该Cookie的值,后者则将其作为请求URL的一部分。...那么对于ASP.NET兼容模式下的WCF也一样,要想让服务端能够识别会话,就需要让每个服务调用的HTTP请求携带Session的识别信息,我们也可以通过传递Cookie的方式来解决这个问题。

    998100

    WCF技术剖析系列总结篇

    不过,一改传统对WCF的工作流程进行平铺直叙,我将另辟蹊径,借助于我们熟悉的ASP.NET作为请求处理平台,通过一个简单的托管程序模拟整个WCF客户端和服务端的架构。...,以及ASP.NET运行时管道对HTTP请求的处理流程: [原创]ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI [原创]ASP.NET Process Model...(阅读全文) 4、基于IIS的WCF服务寄宿(Hosting)实现揭秘 通过《再谈IIS与ASP.NET管道》的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于...)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side)模式和ASP.NET兼容模式。...我意识到这可能和WCF中用于判断服务寄宿方式的逻辑有关,于是我让这位朋友将相同的服务寄宿代码和配置迁移到GUI程序或者Console应用中,看看是否正常。

    1K90

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

    通过《再谈IIS与ASP.NET管道》的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于IIS服务寄宿的实现机制就显得相对容易了。...假设我们有一个WCF服务需要通过IIS进行寄宿,并把WCF服务相应的.svc文件定义在一个对应于某个IIS虚拟目录的ASP.NET Website中。...二、ASP.NET并行(Side by Side)模式 对于基于IIS服务寄宿,System.ServiceModel.Activation.HttpModule将基于.svc的请求劫持并分发给WCF的服务模型...除了ASP.NET提供的一些少量的底层服务,比如动态编译和AppDomain管理等,绝大部分ASP.NET对传统的ASP.NET资源的请求处理机制将不会应用在基于WCF Service的请求处理流程中。...不过,WCF服务模型通过自己的方式解决了上面的问题,比如: OperationContext:ASP.NET HttpContext是基于当前的请求,WCF的OperationContext是基于当前的操作

    1.3K100

    Spring Cloud 服务第一次请求超时的优化

    三个服务启动后,通过zipkin监控调用链路信息,可以看到第一次和第二次调用情况如下图所示: ? ? 通过上面两次的链路监控信息截图,可以看到第一次的耗时是第二次的10多倍。...遇到某些情况,很可能会出现第一次请求的超时。...去官网看了下,主要原因是zuul网关和各个调用服务之间的Ribbon进行客户端负载均衡的Client懒加载,导致第一次的请求调用包括了创建Ribbon Client的时间。...所以第一次调用user-Service耗时不仅仅包含发送HTTP请求的时间,还包含了创建Ribbon Client的时间,这样一来如果创建时间速度较慢,同时设置的请求超时又比较短的话,很容易就会出现耗时很长甚至超时的情况...总结 本文主要介绍了Spring Cloud的服务第一次请求超时的优化方法。

    2.1K50

    WCF和ASP.NET Web API在应用上的选择

    在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API。...作为ASP.NET MVC 4的一部分,ASP.NET Web API这套开源框架的设计目的是简化RESTful服务的开发和使用。...另一方面,ASP.NET MVC的基础设施既能优雅地处理HTTP请求和响应,又能轻松创建各种控制器,好像是创建这种新类型服务的合适途径。...Web程序时,可以脱离IIS运行(Self-hostable) 具备可测试性,测试机制的设计类似于MVC      现在我们拥有了2个服务框架,一个基于RPC机制的WCF和一个基于HTTP的ASP.NET...我们完全也可以这样搭配,在内部通讯采用WCF + Protobuf-NET,参看《WCF服务上应用protobuf》,对外的服务采用ASP.NET WEB API。

    1.5K80

    ASP.NET Web API: 宿主(Hosting)

    handling),本篇文章主要介绍宿主(Hosting):包括ASP.NET经典管道上的Web Hosting和WCF堆栈的自宿主SelfHosting。...从Route Handler中获取到一个实现IHttpHandler接口的Http处理程序 最后,当前的请求上下文映射到上述Http处理程序 因此,在ASP.NET 管道的最后将请求发送这个处理器。...WCF架构 WCF架构主要划分为2层,Channel Stack和Service Model,具体看下图: ? 较低的通道堆栈层是由一堆通道和行为类似于经典的网络协议栈。...一个典型的使用案例的增加协议通道数字签名在发送方和验证签名的人在接收的一面。传输通道,使用编码器转换字节流和信息输送介质字节实例。...上层的Service Model执行消息和方法调用,所处理的人物如下: 把收到的消息转换成参数序列 获取到使用的服务实例 选择调用的方法 选择线程处理调用的方法 然而HttpSelfHostServer

    1.4K60

    使用 ServiceStack 构建跨平台 Web 服务

    ) 是一个相当优秀的服务框架,当我们讨论跨平台的服务的时候,虽然WCF对WebService的支持还行,在面对一些高级应用的不太好,微软重新发展了ASP.NET WebAPI框架,关于这两个框架的讨论可以看我另外一篇文章...《WCF和ASP.NET Web API在应用上的选择》 。...在讨论跨平台的Web服务上,ASP.NET Web API是一个重要选项,在本文中,我将展示如何利用 ServiceStack (开放源代码.NET 和Mono REST 服务框架) 来完成这一任务,不用离开...本文假定您有一些熟悉 WCF 和.NET 框架。 为了更好地展示WCF 概念可以如何转化为 ServiceStack 的概念,首先会在WCF中实现服务层。...指定任何 Web 服务请求是指可以通过 HTTP GET 和 HTTP POST 调用操作。 这种强制措施,简化了 rest 风格的 Web 服务实现。

    1.7K50

    WCF和ASP.NET Web API 接口执行时间监控

    在性能监控器中,你可以在ServiceModelService,ServiceModelEndpoint和ServiceModelOperation下面看到这些计数器。...你可以选择通过配置来为你的应用程序开启这些 WCF性能计数器级别之服务性能计数器 服务性能计数器将服务行为作为整体来进行衡量,可用于诊断服务整体性能。...注意: 如果两个终结点具有相同的协定名称和地址,它们将映射到同一个计数器实例中。...下面我们来讨论下WCF和ASP.NET Web API 接口执行时间监控,下面是我网上找到的相关解决方案 Capturing WCF Request Execution Time :通过性能计数器和DispatchMessageInspector...实现接口执行时间的统计 Tracing in ASP.NET Web API:通过Trace功能统计执行时间 http://www.strathweb.com/2012/11/realtime-asp-net-web-api-tracing-with-signalr

    1.5K80

    WCF,Net remoting,Web service

    在SOAP的header中增加了WS-ReliableMessaging允许可信赖的端对端通信。...它还能将 HTTP 信道与 IIS 和 ASP.NET 辅助进程集成。这一点很重要,原因有以下几点。首先,它是当客户端请求到达时自动启动 .NET Remoting 端点的唯一方法。....ASP.NET Web 服务和 .NET Remoting 基础结构都是可扩展的。您可以过滤入站和出站消息,从多方面控制类型封送和元数据的生成。...另外,客户端每次调用 ASP.NET Web 服务时,都创建一个新的对象以服务于该请求。方法调用完成后,该对象即被破坏。...要维护请求之间的状态,可以使用 ASP.NET 页面使用的相同技术(例如,Session 和 Application 属性包),也可以自己实现自定义的解决方案。

    1.5K50

    WCF 4.5:配置文件更小,对ASP.NET的支持更好

    有了WCF 4.5,配置文件默认只会有绑定类型和名称。 当然,这会引出相关的培训问题,“我怎么知道设定都是什么呢?” 为了回答这个问题,我们还会在配置文件中看到消息提示和自动完成的功能。...如果他们意外忘记了sync,那么服务就会停止运行。WCF 4.5让开发者可以把验证方式类型设置为“InheritedFromHost”,让服务遵从IIS的方式,从而避免了这类特定的缺陷。...Ido Flatow提到,HTTPS的版本会发送机器名而不是用来请求WSDL的主机名。当使用web场的时候这会导致问题。 另一种缺陷在于WCF使用流数据的方式。...Ori认为, 当你把WCF服务部署在IIS中时,即便你不使用ASP.NET兼容模式,也会占用一些ASP.NET的管道,这在MSDN的文章《WCF 服务和ASP.NET》中有记录(你需要查找关于PostAuthenticateRequest...在.NET 4中存在ASP.NET方面的设计缺陷,它会导致传送给WCF的请求缓存在ASP.NET中。这种缓存行为会导致多种主要的副作用: 这不仅会让处理请求产生延迟,特别庞大的内容甚至会溢出到硬盘上。

    90450

    《WCF技术剖析》博文系列汇总

    不过,一改传统对WCF的工作流程进行平铺直叙,我将另辟蹊径,借助于我们熟悉的ASP.NET作为请求处理平台,通过一个简单的托管程序模拟整个WCF客户端和服务端的架构。源代码从这里下载。...[第2篇] 再谈IIS与ASP.NET管道 在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NET运行时管道的文章,深入介绍了IIS 5.x与IIS 6.0HTTP请求的监听与分发机制,...以及ASP.NET运行时管道对HTTP请求的处理流程:《IIS和ASP.NET ISAPI》、《ASP.NET运行时管道[上篇][下篇]》很多人留言为何没有IIS 7的介绍。...[第4篇] 基于IIS的WCF服务寄宿(Hosting)实现揭秘 通过《再谈IIS与ASP.NET管道》的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于...不论WCF服务端框架处理服务调用请求的流程有多么复杂,最终都落实在服务实例的激活和操作方法的执行上面。

    1.4K100

    【翻译】WCF4.5:更少的配置和ASP.NET更好的支持

    在WCF 4.5中配置文件只需要设置绑定的类型和名称即可! 当然这导致了另一个问题:“我怎么知道这些设置是什么呢?”...因为IIS提供了很多内置的支持功能,比如身份验证,状态管理和进程回收等。但在IIS下开发WCF服务仍然有一些限制,微软也正在解决这些问题。...另一个bug是关于WCF传输流数据的,Ido Flatow: 当你把WCF服务寄宿在IIS上时,即使你没有使用asp.net兼容模式,你也一样会得到asp.net处理管线的一部分。...可以在MSDN文档:WCF服务和ASP.NET(查找PostAuthenticateRequest Event部分)找到相关内容。...在.Net 4中,ASP.NET里有一个设计缺陷,对WCF的请求会在ASP.NET中缓冲,这些缓冲行为会引起一些副作用 这不仅仅造成处理请求的延时,更严重的是,相当大的一部分内容溢出到硬盘上了。

    57620

    Asp.net web api 知多少

    客户端初始化请求到服务器,服务器负责处理请求并返回响应。 这些请求和响应都是围绕这些资源的表示形式进行传递。 Q2. 解释下REST原则? Ans....任何会话类型的数据应该在客户端保存和处理,只有在每次请求中按需传递到服务器。 Cacheable(可缓存) - 客户端应该能够缓存响应以供后续使用。 Q3. REST和 SOAP间的区别是什么?...它不像WCF REST service那样需要配置乏味的配置文件。 使用WEB API创建服务十分简单。 基于HTTP并且容易定义,以REST方式公开和使用。...WCF Rest 将WCF 作为 WCF Rest 服务使用,您必须启用 webHttpBindings....WEB API 的请求映射到Http动词对应的action;MVC 的请求直接映射到对应的action name。 ASP.NET WEB API是新的框架和ASP.NET框架核心的一部分。

    4.8K50

    ConcurrencyMode.Multiple 模式下的WCF服务就一定是并发执行的吗:探讨同步上下文对并发的影响

    一、WCF线程亲和性(Thread Affinity) 对于服务端来说,WCF消息监听和接收体系通过IO线程池并发的处理来自客户端的服务调用请求,所以并发抵达的服务调用请求消息能够得到及时的处理。...如果等待的时候超出了设定的超时时限(这在高并发的情况下会比较频繁),客户端会抛出TimeoutException异常。...关于消息分发、筛选机制,以及分发运行时的创建,在《WCF技术剖析(卷1)》的第2章和第7章有详细的介绍。...分发运行时控制了终结点分发器进行消息处理的行为,实际上我们大部分作用于服务端自定义行为(契约行为、操作行为、服务行为和终结点行为)都是通过对该运行时进行相应的定制,使得WCF服务端框架按照我们希望的方式处理请求的消息...上面我们谈到WCF服务端并发体系基于同步上下文的处理机制,从中我们知道了对于非IIS和ASP.NET的寄宿方式,如果在进行服务寄宿的时候当前线程存在同步上下文(比如Windows Forms应用作为宿主

    948110

    Windows Server AppFabric:更好,更快,更便宜

    微软服务器和Internet信息服务(IIS)没有提供用于部署、管理和监控特定类别Web应用程序的全方位的服务,Windows服务器AppFabric的推出是为了响应大量组织和开发商的要求,多年来他们一直希望微软提供...如果多个服务器上多个应用程序访问同一个数据库时,对数据的访问则成为瓶颈。如果asp.net页面等待访问数据库,增加更多的前端服务器是于事无补的。...例如,对于类似于在线销售的产品目录信息等变化较慢或基本没有变化的数据,缓存有很好的体验,它可以在同时满足多个客户端的请求;缓存的另一个应用是存储变化的数据,但同时只能有一个客户端访问,如asp.net的...WCF提供常用暴露及使用服务的途径,WF提供创建工作流逻辑的支持。AppFabric既管理WCF服务,也管理工作流服务(工作流服务也是一种WCF服务)。其区别在于服务中包含的内容。...以代码为基础的WCF服务也有类似的模板,因此你可以立即将你的关注点放在用代码编写的业务逻辑上,而不用编写WCF基础结构或任何相关的宿主逻辑和管理功能——AppFabric替您完成了这些工作。

    1.4K80

    【翻译】.NET Framework 4.5新特性

    LinkId=228491 核心新功能和改进 以下这些功能和改进被添加到公共语言运行时(CLR)和.NET的类内: -设置正则表达式执行匹配的超时时间 -为应用程序域设置区域性信息 -控制台应用支持Unicode...-更好的集成WPF和Win32的用户界面组件。 -可以检查容器的数据上下文是否断开链接。 -可以设置属性、数据源改变的超时时间 -实施弱事件模式的改进支持。此外,事件现在可以接受的扩展标记。...-更容易的配置ASP.NET兼容性模式。 -修改了默认传输属性,以减少开发人员通过编码设置它的次数。...-新的HTTPS协议映射,使IIS上的基于HTTPS协议的WCF服务更容易暴露终结点 -通过在WCF服务URL中增加“?...-支持在代码中配置服务(应该是运行期改变服务配置) -XML编辑器提示。 -ChannelFactory的缓存支持。

    88020
    领券