<serviceHostingEnvironment>——之架构和特性
2015-08-30 19:35
429 查看
麻麻说写博客题目太长不好,丫的,这还少写了好几个字呢,字数限制君发威说已经够长了,真的很怕再长……呵呵……
这篇文章继续上次的话题,真心的来了解一下<serviceHostingEnvironment>。
这是在我们的配置文件中关于<serviceHostingEnvironment>的一句代码,其实这就是启用了ASP.NET兼容模式。
其实我们只用到了<serviceHostingEnvironment>的几个特性。
<serviceHostingEnvironment>整体架构
下面看一下<serviceHostingEnvironment>的整体结构。
<serviceHostingEnvironment>元素定义服务主机环境要为特定传输实例化的类型。如果此元素为空,则使用默认类型。此元素只能子啊应用程序或计算机级别的配置文件中使用。
具体特性和元素
几个问题
一、为什么要启用ASP.NET兼容模式?
其实在小乖以前的博客中也涉及到过WCF发布服务是需要寄宿的,所以寻找一个合适的宿主非常重要,我们用的最多的就是IIS服务寄宿。而这里就是在描述一些寄宿环境的元素。其中要有设置启用ASP.NET兼容模式。
在默认的情况下,IIS的寄宿采用ASP.NET并行模式。但是在一个Web应用中,尤其是一些AJAX的Web应用,却要明确地需要以一种ASP.NET兼容模式处理WCF
Service请求。ITOO中就用到了AJAX应用。其实我们实现它仅需要在Service类型加上一个特殊的AspNetCompatibilityRequirementsAttribute特性,并将RequirementsMode属性指定为AspNetCompatibilityRequirementsMode.Allowed,实例代码如下:
那么读到这里,你也一定遇到过这个问题了,我相信,读到这里,你也一定知道遇到了这个问题该怎样解决它了。
二、为什么要设置是否对每个站点启用多个
IIS 绑定
IIS 由网站组成,这些网站是包含虚拟目录的虚拟应用程序的容器。 可通过一个或多个 IIS 绑定访问站点上的应用程序。 一个 IIS 绑定提供两条信息:绑定协议和绑定信息。 绑定协议定义进行通信所依据的方案,而绑定信息是用于访问站点的信息。 绑定协议的一个示例可以是 HTTP,而绑定信息可包含 IP 地址、端口、主机标头等。
IIS 支持一个站点指定多个 IIS 绑定,这会导致一个方案有多个基址。 但是,在一个站点下承载的WCF服务允许每个方案只绑定一个BaseAddress。若要为WCF服务对每个站点启用多个
IIS 绑定,需将此特性设置为true。 请注意,仅对 HTTP 协议支持多个站点绑定。配置文件中的终结点地址需要是一个完整的
URL。
既然说到了<serviceHostingEnvironment>,我们也知道,它其实是<system.serviceModel>的一个属性元素。我们曾经也可能了解过,一个WCF服务要想对外发布,要配置终结点,其实终结点就是在这里配置的……除了这些,还有一些配置项,请期待下一篇博客分解……
这篇文章继续上次的话题,真心的来了解一下<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服务要想对外发布,要配置终结点,其实终结点就是在这里配置的……除了这些,还有一些配置项,请期待下一篇博客分解……
相关文章推荐
- php 利用dede搭建一个模板网站
- 利用相关性提高网站关键词排名
- 提高网站关键词排名之——网站内容质量及相关性
- 企业网站如何提高内容的相关性
- 9月1日起Chrome中止自动播放Flash广告
- 浅谈如何进行网站结构优化
- 关于项目架构资料整理
- android学习博客及网站
- tty驱动程序架构
- 嵌入式相关的开源网站和必备软件
- Hadoop分布式文件系统:架构和设计
- 使用Revel(go)开发网站
- 使用Revel(go)开发网站
- 如何在XAMPP中设置多个网站
- 简单之美-Dubbo架构设计详解
- Hbase架构简介、实践
- 高性能网站建设的14个原则
- 架构设计:负载均衡层设计方案(1)——负载场景和解决方式
- 架构设计:负载均衡层设计方案(8)——负载均衡层总结上篇
- 大型网站图片服务器架构的演进