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

使用Glue4Net部署.NET应用的更多相关文章

  1. Glue4Net简单部署基于win服务的Socket程序

    smark 专注于高并发网络和大型网站架规划设计,提供.NET平台下高吞吐的网络通讯应用技术咨询和支持 Glue4Net简单部署基于win服务的Socket程序 在写一些服务应用的时候经常把要它部署到 ...

  2. [原]CentOS7.2部署node-mapnik

    转载请注明表作者think8848及出处(http://think8848.cnblogs.com) node-mapnik依赖项中要求g++ >= 5, toolchain (>= GL ...

  3. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

  4. 通过Jexus 部署 dotnetcore版本MusicStore 示例程序

    ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...

  5. 结合Jexus + Kestrel 部署 asp.net core 生产环境

    ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...

  6. 4.Windows Server2012 R2里面部署 MVC 的网站

    网站部署之~Windows Server | 本地部署:http://www.cnblogs.com/dunitian/p/4822808.html#iis 后期会在博客首发更新:http://dnt ...

  7. Win10 IIS本地部署MVC网站时不能运行?

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 部署后出现这个错误: 打开文件目录后发现是可以看见目录的,静态页面也是可以打开的 ...

  8. 再部署一个 instance 和 Local Network - 每天5分钟玩转 OpenStack(131)

    上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 ...

  9. 将 instance 部署到 OVS Local Network - 每天5分钟玩转 OpenStack(130)

    上一节创建了 OVS 本地网络 first_local_net,今天我们会部署一个 instance 到该网络并分析网络结构.launch 一个 instance,选择 first_local_net ...

随机推荐

  1. 极简科普 1:什么是 VOIP

    VoIP 的全称是 Voice over Internet Protocol.简单说,就是用过 IP 网络进行即时的语音/视频通信.注意,这里只强调了在传输过程中有使用 IP 网络,并没有说只通过 I ...

  2. Linux虚拟机搭建本地yum源

    Yum本地源的配置 本教程是在虚拟机里安装Red Hat Enterprise Linux 7 ,以其为例使用iso文件进行Yum本地源的配置.所使用的软件如下: (1)虚拟机:Vmware work ...

  3. 数据库和Content Provider

    SQLite提供了强大的SQL数据库的库文件,从而使应用程序拥有一个具备完全控制权的健壮的持久化层. Content Provider实现在应用程序内和应用程序之间存储.共享和使用结构化数据.通过将数 ...

  4. CentOS7更换国内源

    前言 CentOS 有个很方便的软件安装工具yum,但是默认安装完CentOS,系统里使用的是国外的CentOS更新源,这就造成了我们使用默认更新源安装或者更新软件时速度很慢的问题,甚至更新失败. 为 ...

  5. 通配符的匹配很全面, 但无法找到元素 'context:property-placeholder' 的声明。

    在Spring相应包导入正确的前提下,出现这个异常,是因为我们在引入命名空间的时候,没有正确引入它的DTD解析文件,以上面的context为例,解决办法如下: 在引入 xmlns:context=&q ...

  6. 如何在浏览器中输入(myeclipse创建的项目的)地址访问JSP页面

    如何在浏览器中输入(myeclipse创建的项目的)地址访问JSP页面 可以在Tomcat项目里面查看你的JSP页面在哪里,具体的路径为: tomcat--work--localhost--项目名称, ...

  7. Linux系统下,在文件中查找某个字符串

    在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车. Vim会跳转到第一个匹配.按下n查找下一个,按下N查找上一个. Vim查找支持正则表达式,例如/vim$匹配行尾的" ...

  8. Php中文件下载功能实现超详细流程分析

    浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下   客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php) ...

  9. sublime设置sublimeREPL-python-run current file 快捷键

    弄了3个小时的快捷键,一直不能成功使用,百度上一堆一样的方法,最后FQ才找到能用的方法,真是服了. 方法: ①首选项->快捷键设置 填写如下内容: [ {"keys": [& ...

  10. MVC Ajax上传文件

    前台:首先要导入jQuery <html><head> <meta name="viewport" content="width=devic ...