• Self_hosting自托管宿主.

    • 过程:手动创建Host实例,把服务端点添加到Host实例上,把服务接口与Host关联.
    • 一个Host只能指定一个服务类型,但是可以添加多个服务端点,也可以打开多个Host.其中,Typeof(..)就是配置中的<Service Name=..>.
    • 在通常的企业应用中,我们很少会采用自宿主方式托管服务,这是因为这种方式必须要在应用程序运行下,客户端才能够调用服务,且并不便于随时启动和停止服务。除了不具有易用性与易管理性之外,在可靠性、性能等诸多方面受到很多限制。但由于它简单、易于实现,因而往往用于开发期间的调试或演示环境。
    • 自托管宿主支持所有的绑定.
  • 事件/服务.
    • 行为:宿主与服务的交流互操作.OnOpen/Host.Description.Behaviors.Add(…)).
  • IIS/WAS宿主.
    • 由IIS提供宿主的实例,只需在.SVC文件中声明一个服务类型(@ServiceHost Service=…)就可以了,而Self-hosting为一个可执行程序,其端点可以直接设置,但是IIS/WAS端点与.svc文件相关联.
    • IIS的宿主,是通过内核的http.sys监听.所以只能处理Http请求.
    • 服务分到不同的APP Domain 中,一次的恶意攻击,只会影响一个服务实例,而对于self-hosting,导致程序崩溃.
    • WAS是IIS7的扩展.可以处理各种格式的文件.
  • Windows应用程序.
    • Form/WPF带有UI的宿主,安装在客户端主机上,在客户端主机上暴露服务.
    • 因为此种服务需要对宿主进行一些UI操作.服务Host需要手动打开,如果在非UI线程上打开,服务操作会在新线程上,如果在UI线程上,自动加入该UI线程.
    • 要注意线程上下文的同步.
  • Windows服务.
    • 用于无人值守的主机,也可以部署到客户端主机上,主机启动时,宿主环境初始化,发生错误时重启.
    • 它便于管理者方便地启动或停止服务,且在服务出现故障之后,能够重新启动服务。
    • 我们还可以通过Service Control Manager(服务控制管理器),将服务设置为自动启动方式,省去了服务的管理工作。
    • 此外,Windows Services自身还提供了一定的安全性以及检测机制和日志机制。
    • 如果在企业应用中要使用WCF技术,最佳的宿主方式就是Windows Services,尤其是服务器的操作系统不是Vista的情况之下。
    • 它便于服务的管理,能够维持服务长时期的运行,同时它还支持所有的绑定,因而受到的限制最小。
    • 然而,这种方式唯一的缺点却是对宿主的部署相对比较复杂,必须通过.NET提供的Installutil.exe工具完成对服务宿主的安装(也可以通过安装包的自定义操作完成)。若要完成对服务宿主的安装,我们还需要创建它的安装程序.

WCF之Host宿主的更多相关文章

  1. WCF之Windows宿主

    WCF之Windows宿主(可安装成服务自动并启动) WCF之Windows宿主(可安装成服务自动并启动) 创建解决方案WCFServiceDemo 创建WCF服务库(类库或WCF服务库)WCFSer ...

  2. WCF之Windows宿主(可安装成服务自动并启动)

    WCF之Windows宿主(可安装成服务自动并启动) 创建解决方案WCFServiceDemo 创建WCF服务库(类库或WCF服务库)WCFService  ,添加引用System.ServiceMo ...

  3. wcf iis host 打开exe失败 不能显示界面

    最近谷歌没法用了,我的freegate经常性的崩溃 无奈之下,用了必应,貌似也不错 http://stackoverflow.com/questions/8414514/iis7-does-not-s ...

  4. wcf类库及宿主

    说起wcf,一直以来总是直接创建wpf的应用程序,这样默认的宿主是IIS.如果想更换宿主,那么我们首先得创建wcf类库. 这个类库会自动创建一个app.config文件.到最后部署的时候,把它移到宿主 ...

  5. 使用Winform程序作为WCF服务的宿主

    如果我们自己新建一个WCF服务库,生成了dll文件.那我们需要创建一个宿主程序,在本例中我们新建一个Winform程序作为WCF的宿主程序. 在网上很多教程里对创建过程写的很模糊,错误也很多.本文是作 ...

  6. wcf自身作为宿主的一个小案例

    第一步:创建整个解决方案 service.interface:用于定义服务的契约(所有的类的接口)引用了wcf的核心程序集system.ServiceModel.dll service:用于定义服务类 ...

  7. [WCF] Restful 自定义宿主

    IPersonRetriever: /* * 由SharpDevelop创建. * 用户: Administrator * 日期: 2017/6/2 * 时间: 22:13 * * 要改变这种模板请点 ...

  8. WCF 基于 WinForm 宿主 发布

    ServiceHost Host = new ServiceHost(typeof(ServiceHTTP)); //绑定 System.ServiceModel.Channels.Binding h ...

  9. WCF寄宿(Host)之自我寄宿(Self-Hosting)简单实例【Console应用为宿主】

    前言: 由于最近的项目 中需要用到WCF,所以又回头翻了翻,阅读了大量园中大神的博文,故而做个总结. 谬误之处,万望不吝指教! 闲话不叙! 一.寄宿(Host)WCF服务  1)一种是为一组WCF服务 ...

随机推荐

  1. ORA-01722: invalid number

    ---问题 select owner,index_name,DEGREE from DBA_INDEXES where DEGREE>1                             ...

  2. 50个Android开发人员必备UI效果源码[转载]

    50个Android开发人员必备UI效果源码[转载] http://blog.csdn.net/qq1059458376/article/details/8145497 Android 仿微信之主页面 ...

  3. 用Python编写九九乘法表考虑print自动换行问题

    编写了一个简单的小程序九九乘法表,代码如下: for i in range(1,10): for j in range(1,i+1): print(" %d*%d=%d" % (j ...

  4. Docker 1.12.0将要发布的新功能

    Docker 1.12.0将要发布的新功能 导读 按计划,6/14 是1.12.0版本的 feature冻结 的日子,再有两个星期Docker 1.12.0也该发布了.这里列出来的新功能,都是已经合并 ...

  5. html、css、js的命名规范

    最佳原则 坚持制定好的代码规范. 无论团队人数多少,代码应该同出一门. 项目命名 全部采用小写方式, 以下划线分隔. 例:my_project_name 目录命名 参照项目命名规则: 有复数结构时,要 ...

  6. java操作spark1.2.0

    虽然推荐的是scala,但是还是试一下 package org.admln.java7OperateSpark; import java.util.Arrays; import java.util.L ...

  7. String、Brush、Color 相互转换

    1.String转换成Color Color color = (Color)ColorConverter.ConvertFromString(string); 2.String转换成Brush Bru ...

  8. CAKeyframeAnimation 旋转动画

  9. Parallel.ForEach() 并行循环

    现在的电脑几乎都是多核的,但在软件中并还没有跟上这个节奏,大多数软件还是采用传统的方式,并没有很好的发挥多核的优势. 微软的并行运算平台(Microsoft’s Parallel Computing ...

  10. XHTML文档基本结构

    1.什么是XHTML 即是通常所说的DIV+CSS XHTML (可扩展文本标签语言)英文表示(eXtensiblet HeperText Markup Language) (XHTML是一个扮演着H ...