温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Glue4Ne应用部署托管服务

发布时间:2020-07-02 17:11:40 来源:网络 阅读:527 作者:ikende 栏目:编程语言

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

容器结构

Glue4Ne应用部署托管服务

支持功能

  • 自动加载目录的.NET程序.

  • 自动加载目录下的代码文件并添加到应用域中.

  • 提供自成定义模块定义,加载应用的时候执行.

  • 自定义监控文件变更,变更重新加载相应的服务.

使用

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

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

Glue4Ne应用部署托管服务

托管应用

应用可以是编写好的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!");
        }




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI