• Custom Hosting in IIS/WAS


    常常需要与宿主实例进行交互。这对于使用自托管的方式是不可或缺的。当使用IIS或WAS时,不能直接访问宿主。为了克服这个障碍,WCF提供了一个宿主工厂。在.svc文件中使用Factory标签,使用此工厂,而不使用默认工厂:

    <%@ ServiceHost
       Language   = "C#"
       Debug      = "true"
       CodeBehind = "~/App_Code/MyService.cs"
       Service    = "MyService"
       Factory    = "MyServiceFactory"
    %>

    当不显示使用.svc文件时,也可以在配置文件中指定宿主工厂:

    “<serviceActivations>
       <add relativeAddress = "MyService.svc"
            service = "MyService"
            factory = "MyServiceFactory"
       />
    </serviceActivations>”
    
    摘录来自: Juval Löwy and Michael Montgomery. “Programming WCF Services”。 iBooks. 

    自定义宿主工厂类必须继承自ServiceHostFactory类并重写虚方法CreateServiceHost():

    public class ServiceHostFactory : ...
    {
       protected virtual ServiceHost CreateServiceHost(Type serviceType,
                                                       Uri[] baseAddresses);
       //More members
    }”
    
    摘录来自: Juval Löwy and Michael Montgomery. “Programming WCF Services”。 iBooks. 

    例如:

    class MyServiceFactory : ServiceHostFactory
    {
       protected override ServiceHost CreateServiceHost(Type serviceType,
                                                        Uri[] baseAddresses)
       {
          ServiceHost host = new ServiceHost(serviceType,baseAddresses);
    
          //Custom steps here
    
          return host;
       }
    }”
    
    摘录来自: Juval Löwy and Michael Montgomery. “Programming WCF Services”。 iBooks. 

    CreateServiceHost()方法其实就相当于IIS或WAS托管服务的Main()方法,你可以以这样的目的来使用它。

    尽管对于从 CreateServiceHost 返回的 ServiceHost 可以执行什么操作没有技术限制,但建议您尽可能使工厂实现简单化。如果有大量的自定义逻辑,最好将这些逻辑放入宿主内而不是工厂内,以便可以重用它们。

     完整示例:CustomServiceHost.zip

    参考:

    Juval Löwy and Michael Montgomery. “Programming WCF Services”

    使用 ServiceHostFactory 扩展宿主(https://msdn.microsoft.com/zh-cn/library/aa702697.aspx)

     

  • 相关阅读:
    继承(二)
    抽象和封装(一)
    系统优化——建立linux回收站机制
    kvm-web管理工具webvirtmgr
    云产品类别及其特点(转)
    zabbix通过agent监控linux主机
    zabbix通过snmp监控linux主机
    zabbix通过snmp监控windows主机
    zabbix的安装
    运维各技术方向及其成熟的技术分支
  • 原文地址:https://www.cnblogs.com/joe-yang/p/5154826.html
Copyright © 2020-2023  润新知