使用AppFabric 承载WCF和WF服务-实例分析和说明

针对Pro Windows Server AppFabric ISBN-13 (pbk): 978-1-4302-2817-2图书中的例子进行修改和分析

这个例子的应用场景如下:

前端是Asp.net MVC的站点,使用了ProcessClaimService.WF AppraisalService.WCF服务

ProcessClaimService.WF服务使用了AppraisalService.WCF BillingService.WCF CarRentalService.WCF服务【WorkflowActivities中引用】

例子可在这下载

http://cid-56b433ad3d1871e3.office.live.com/self.aspx/.Public/AppFabric-Contoso.rar 

首先下载实例,将文件解压到D:\ Contoso

1、 数据库[使用SQL Server Managerment Studio]

建立一个新的数据库contoso

使用D:\Contoso\contoso.sql建立架构和初始数据

然后给BUILTIN\IIS_IUSRS赋予权限

2、 应用编译[VS2010]

编译D:\Contoso\ Claims.sln

3、 应用部署[inetmgr]

Inetmgr启动IIS管理

配置好后的效果:

注意


应用程序池使用ASP.net 4.0集成模式


AppFabric Web端口89【这个可变】,路径 D:\Contoso\Claims.Web\Claims.Web

AppFabric Services端口90【需要变需要修改相关配置文件才能只能工作】,路径 D:\Contoso\Contoso.Services


在AppFabric Services新加应用程序,具体对应路径:

AppraisalService.WCF –> D:\Contoso\Contoso.Services\AppraisalService.WCF

BillingService.WCF -> D:\Contoso\Contoso.Services\BillingService.WCF

CarRentalService.WCF -> D:\Contoso\Contoso.Services\CarRentalService.WCF

ProcessClaimService.WF -> D:\Contoso\Contoso.Workflows\ProcessClaimService

其中,ProcessClaimService.WF的高级设置中net.pipe需加上[AppFabric管理需要]


ProcessClaimService.WF的AppFabric配置

选择ProcessClaimService.WF

界面上点击配置,即弹出配置窗口

可以看到可以设置很多的选项

4、 服务调用

Ø http://localhost:89/Claims 进入,使用用户dannyg,密码 mydemo登陆

Ø 选择一个条目,如第一条,进入如下的地址http://localhost:89/Claims/Details/1

Ø 选择编辑,进入如下的地址http://localhost:89/Claims/Edit/1

Ø 改变一下条目(否则不会启动流程,此时Appfabric仪表板只能看到普通的WCF调用,ClaimsController.cs中进行了判断),点击“Process Claim“,此时就启动的流程【由于流程中设置了延迟,因此工作流会进行持久化】

5、 信息查看

在IIS中的AppFabric仪表板可以看到跟踪信息:包括汇总和明细信息

由上可见,对于WCF和WF的服务托管,这个工具提供了丰富的支持,方便我们的服务部署和管理。

时间: 2024-10-26 16:09:54

使用AppFabric 承载WCF和WF服务-实例分析和说明的相关文章

使用AppFabric 承载WCF和WF服务-安装和使用

AppFabric 承载服务步骤 对于包含WCF和WF的服务,如果想长期的运行和管理维护,AppFabric无疑是个很好的选择.具体步骤: 参考http://www.cnblogs.com/2018/category/263041.html 下载安装软件 安装后的配置情况如下: AppFabric安装和配置 安装完后的数据库 主要启动的服务有 AppFabric工作流管理服务 AppFabric缓存服务 AppFabric事件收集服务 SQL Server代理 AppFabric事件收集服务 S

使用AppFabric 承载WCF和WF服务【注意点和问题的解决方法】

前面几个文章  http://www.cnblogs.com/2018/category/263041.html 接了Appfabric的概要和分析,实际使用中还有一些注意的问题,总结一下. 数据库访问 由于IIS应用池的账户[默认BUILTIN\IIS_IUSRS]设置不同,因此数据库需要对这个用户赋予权限,否则访问数据库会出现问题,出现问题时在Windows日志中会有记录 Widnows 事件查看器 如果出现问题,可以先察看这个里面是否记录了相关信息,这个是比较重要的一个线索,许多的错误和异

.NET Framework 4.0和“Dublin”中的WCF和WF服务

本文基于 .NET Framework 4.0 和 "Dublin" 的预发布版本.所有信息均有可能发生变更. WF 活动程序库和设计器 .NET Framework 4.0 中的 WCF 改进 "Dublin" 扩展指南 使用 "Dublin" 构建和部署服务 本文使用了以下技术: .NET Framework 4.0."Dublin" 在 2008 年 10 月份召开的专业开发人员大会 (PDC) 上,Microsoft

WCF分布式开发步步为赢(9):WCF服务实例激活类型编程与开发

.Net Remoting的激活方式也有三种:SingleTon模式.SingleCall模式.客户端激活方式,WCF服务实例激活类型包括三种方式:单调服务(Call Service),会话服务(Sessionful Service),单例服务(Singleton Service).他们之间有什么联系.WCF服务激活类型的优势和缺点,以及如何在项目里编程开发和设置服务实例.全文分为5个部分,首先一次介绍单调服务(Call Service),会话服务(Sessionful Service),单例服

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]

在[第2篇]中,我们深入剖析了单调(PerCall)模式下WCF对服务实例生命周期的控制,现在我们来讨轮另一种极端的服务实例上下文模式:单例(Single)模式.在单例模式下,WCF通过创建一个唯一的服务实例来处理所有的客户端服务调用请求.这是一个极端的服务实例激活方式,由于服务实例的唯一性,所有客户端每次调用的状态能够被保存下来,但是当前的状态是所有客户端作用于服务实例的结果,而不能反映出具体某个客户端多次调用后的状态.WCF是一个典型的多线程的通信框架,对并发的服务调用请求是最基本的能力和要

WCF并发(Concurrency)的本质:同一个服务实例上下文(InstanceContext)同时处理多个服务调用请求

引言 服务(Service)的本质就是提供服务消费者期望的某种功能,服务的价值体现在两个方面:服务本身的质量和寄宿服务的平台应付消费者的数量,并发(Concurrency)的关注的是第二个要素.WCF服务寄宿于资源有限的环境中,要实现服务效用的最大化,需要考虑如何利用现有的资源实现最大的吞吐量(Throughput).提高吞吐量就某个寄宿的服务实例(Service Instance)来说,一个重要的途径就是让它能够同时处理来自各个客户端(服务代理)的并发访问.WCF实现了一套完整的并发控制体系,

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]

在[第2篇]中,我们深入剖析了单调(PerCall)模式下WCF对服务实例生命周期的控制,现在我们来讨轮另一种极端的服务实例上下文模式:单例(Single)模式.在单例模式下,WCF通过创建一个唯一的服务实例来处理所有的客户端服务调用请求.这是一个极端的服务实例激活方式,由于服务实例的唯一性,所有客户端每次调用的状态能够被保存下来,但是当前的状态是所有客户端作用于服务实例的结果,而不能反映出具体某个客户端多次调用后的状态.WCF是一个典型的多线程的通信框架,对并发的服务调用请求是最基本的能力和要

工作流服务-使用 WCF和WF 4的工作流可视化设计

开发人员越来越多地采用面向服务的体系结构 (SOA) 作为构建分布式应用程序的方式.对于缺乏经验的人,设计和实现面向服务的分布式应用程序可能会令人生畏.然而,Microsoft .NET Framework 4 使得使用 Windows Workflow Foundation (WF) 实现 Windows Communication Foundation (WCF) 服务变得比以往任何时候都更简单. WCF 工作流服务为编写长时间运行.持久的操作或服务(其中通过排列操作的顺序强制实施应用程序协

[WCF 4.0新特性] 路由服务[实例篇]

在本篇文章中,我们将通过一个具体的实例来演示如何通过路由服务.在这个例子中,我们会创建连个简单的服务HelloServie和GoodbyeService.假设客户端不能直接调用这两个服务,需要使用到路由服务作为两者之间的中介.整个消息路由的场景如下图所示,中间的GreetingService.svc就是代表路由服务,而两个目标服务则通过HelloServie.svc和GoodbyeService.svc表示.路由服务使用的消息筛选器EndpointAddressMessageFilter,即根据