• 使用Glue4Net部署.NET应用


            Glue4Net是一款.NET平台下的应用部署管理容器,可以配置N个不同目录下的.NET应用并加载到不同的应用域中,并提供自动识别应用文件的变更来重新加载应用。通过Glue4Net应用加载容器可以大大节省.NET应用的部署和更新维护工作。

    容器结构

    支持功能

    • 自动加载目录的.NET程序.
    • 支持加载多个.NET程序应用
    • 自动加载目录下的代码文件并添加到应用域中.
    • 提供自成定义模块定义,加载应用的时候执行.
    • 自定义监控文件变更,变更重新加载相应的服务.

    服务安装使用

    容器提供命令行和windows服务模式,可以通过install.bat注册到windwos服务中运行,容器可以通过以下连接下载

    http://www.ikende.com/files/file/Glue4net.rar

    托管应用

    应用可以是编写好的DLL或直接相应的代码文件(.cs或.vb)可以存放到任意容器可以访问的目录下.通过编辑domains.config文件把应用添加到容器中(修改文件后并不需要重启Glue4Net,容器会自动加载).

        <domains>
           <add name="test"
               compiler="true"
               path="test"
               updateWatch="true"
               watchFilter="*.cs|*.config"/>
        </domains>

    只需要在domains配置节添加相关应用的信息.

    • name
      应用名称,在容器中是唯一
    • path
      应用所在的目录,如果不是全路径的情况则会从当前容器目录下查找相应的子目录
    • compiler
      是否开启编译源代码功能
    • updateWatch
      是否开启文件更新监控,如果发现文件变更则重启应用
    • watchFilter
      监控的文件类型

    添加运行模块

    容器只会根据配置信息把应用加载到相应的域中,是不会执行任何相关代码.如果需要容器加载应用后执行某些功能,则在编写应用的时候需要有类实现IAppModule接口.容器会遍历所有这些接口的实现类实例化并执行.

        public interface IAppModule
        {
            string Name
            {
                get;
            }
            IEventLog Log
            {
                get;
                set;
            }
            void Load();
            void UnLoad();
        }

    应用配置信息

    在编写应用的时候很多信息都依赖于配置文件,那当容器加载应用后,应用相应的配置文件是如何处理呢?只需要把配置信息存放到应用目录下的app.config即可.

    如添加一个AppSetting

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="username" value="bbq"/>
      </appSettings>
    </configuration>

    代码里直接通过ConfigurationSettings访问

    using System;    
    public class TestModule : Glue4Net.IAppModule
        {
            public string Name
            {
                get {return "TEST"; }
            }
    
            public Glue4Net.IEventLog Log
            {
                get;
                set;
            }
    
            public void Load()
            {
                string name = System.Configuration.ConfigurationSettings.AppSettings["username"];
                Log.Info("Test Module Load !");
                Log.Info("UserName:{0}", name);
               
            }
    
            public void UnLoad()
            {
                Log.Info("Test Module UnLoad!");
            }

    Glue4Net核心库:https://github.com/IKende/IKendeLib/tree/master/Glue4Net

  • 相关阅读:
    iOS 面试题汇总
    iOS管理文件和目录
    文件管理
    Cocoapods依赖管理
    IOS开发几何类方法 CGGeometry.h文件
    CGContext
    respondsToSelector的相关使用
    Java数组5作业(2015-8-27)
    Java错误1(2015-8-27)
    Java数组4(2015-8-27)
  • 原文地址:https://www.cnblogs.com/smark/p/3523644.html
Copyright © 2020-2023  润新知