<serviceHostingEnvironment>——之架构和特性
来源:互联网 发布:linux 内核源码修改 编辑:程序博客网 时间:2024/06/03 21:09
麻麻说写博客题目太长不好,丫的,这还少写了好几个字呢,字数限制君发威说已经够长了,真的很怕再长……呵呵……
这篇文章继续上次的话题,真心的来了解一下<serviceHostingEnvironment>。
这是在我们的配置文件中关于<serviceHostingEnvironment>的一句代码,其实这就是启用了ASP.NET兼容模式。
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="1" />
其实我们只用到了<serviceHostingEnvironment>的几个特性。
<serviceHostingEnvironment>整体架构
下面看一下<serviceHostingEnvironment>的整体结构。
<serviceHostingEnvironment aspNetCompatibilityEnabled="Boolean" minFreeMemoryPercentageToActivateService="Integer" multipleSiteBindingsEnabled="Boolean"> <baseAddressPrefixFilters> <add prefix="string"/> </baseAddressPrefixFilters> <serviceActivations> <add factory="String" service="String"/> </serviceActivations> <transportConfigurationTypes> <add name="String" transportConfigurationType="String" /> </transportConfigurationTypes></serviceHostingEnvironment>
<serviceHostingEnvironment>元素定义服务主机环境要为特定传输实例化的类型。如果此元素为空,则使用默认类型。此元素只能子啊应用程序或计算机级别的配置文件中使用。
具体特性和元素
name
具体性质
描述
aspNetCompatibilityEnabled
特性
一个布尔值,指示是否已为当前应用程序启用了 ASP.NET 兼容模式。 默认值为 false。
当此属性设置为 true 时,对 Windows Communication Foundation (WCF)服务的请求将流经 ASP.NET HTTP 管道,而通过非 HTTP 协议的通信将被禁止。
minFreeMemoryPercentageToActivateService
特性
一个整数,指定在可以激活 WCF 服务之前,系统应该具有的最小可用内存量。
multipleSiteBindingsEnabled
特性
一个布尔值,指定是否对每个站点启用多个 IIS 绑定。
serviceModel
父元素
所有 Windows Communication Foundation (WCF) 配置元素的根元素。
baseAddressPrefixFilters
子元素
一个配置元素的集合,这些元素指定服务主机所使用的基址的前缀筛选器。
serviceActivations
子元素
一个描述激活设置的配置节。
transportConfigurationTypes
子元素
一个配置元素的集合,这些元素标识特定传输的类型。
几个问题
一、为什么要启用ASP.NET兼容模式?
其实在小乖以前的博客中也涉及到过WCF发布服务是需要寄宿的,所以寻找一个合适的宿主非常重要,我们用的最多的就是IIS服务寄宿。而这里就是在描述一些寄宿环境的元素。其中要有设置启用ASP.NET兼容模式。
在默认的情况下,IIS的寄宿采用ASP.NET并行模式。但是在一个Web应用中,尤其是一些AJAX的Web应用,却要明确地需要以一种ASP.NET兼容模式处理WCF Service请求。ITOO中就用到了AJAX应用。其实我们实现它仅需要在Service类型加上一个特殊的AspNetCompatibilityRequirementsAttribute特性,并将RequirementsMode属性指定为AspNetCompatibilityRequirementsMode.Allowed,实例代码如下:
/// <summary> /// 考试模板方法 /// </summary> [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] public partial class ExamEvalTemplateService : IExamEvalTemplateService { }除此之外,WCF的配置也需要做一些修改,我们需要将<serviceHostingEnvironment/>配置节的aspNetCompatibilityEnabled属性设为true。
那么读到这里,你也一定遇到过这个问题了,我相信,读到这里,你也一定知道遇到了这个问题该怎样解决它了。
二、为什么要设置是否对每个站点启用多个 IIS 绑定
IIS 由网站组成,这些网站是包含虚拟目录的虚拟应用程序的容器。 可通过一个或多个 IIS 绑定访问站点上的应用程序。 一个 IIS 绑定提供两条信息:绑定协议和绑定信息。 绑定协议定义进行通信所依据的方案,而绑定信息是用于访问站点的信息。 绑定协议的一个示例可以是 HTTP,而绑定信息可包含 IP 地址、端口、主机标头等。
IIS 支持一个站点指定多个 IIS 绑定,这会导致一个方案有多个基址。 但是,在一个站点下承载的WCF服务允许每个方案只绑定一个BaseAddress。若要为WCF服务对每个站点启用多个 IIS 绑定,需将此特性设置为true。 请注意,仅对 HTTP 协议支持多个站点绑定。配置文件中的终结点地址需要是一个完整的 URL。
既然说到了<serviceHostingEnvironment>,我们也知道,它其实是<system.serviceModel>的一个属性元素。我们曾经也可能了解过,一个WCF服务要想对外发布,要配置终结点,其实终结点就是在这里配置的……除了这些,还有一些配置项,请期待下一篇博客分解……
- <serviceHostingEnvironment>——之架构和特性
- <serviceHostingEnvironment>——引发的<system.serviceModel>
- <serviceHostingEnvironment>——找不到类型“ITOO。ExamEvalTemplate.Service.WCFSercie.ExamEvalTemplateService”
- 学习笔记之-Android架构和特性
- Android的架构和特性
- CPS系统特性介绍—— 2、易于使用和掌握的架构设计
- 找不到类型*它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 *serviceModel/serviceHostingEnvironment/serviceActiva
- 找不到类型*它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 *serviceModel/serviceHostingEnvironment/serviceActiva
- Exchange 2013 新特性之架构篇
- DC基本业务、特性和架构
- PMS业务、特性和系统架构
- InnoDB主要特性、概念和架构
- InnoDB主要特性、概念和架构
- 人之特性—学习
- 人之特性—自私
- 人之特性—适应
- 人之特性—舞台
- 人之特性—贪
- 关于iOS和OS X废弃的API你需要知道的一切
- 新浪微博图片
- Could not resolve view with name
- 剑指offer 6 重建二叉树
- NYOJ 23 取石子(一)
- <serviceHostingEnvironment>——之架构和特性
- Django学习笔记第1记
- NYOJ 24 素数距离问题
- 强制使用处于TIME_WAIT的TCP状态的socket地址
- 嵌入式学习路线
- NYOJ 29 求转置矩阵问题
- AAtitit.随时间变色特效 ---包厢管理系统的规划titit.随
- NYOJ 31 5个数求最值
- 深度学习:Java 自动装箱和拆箱(好文)