溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Glue4Ne應(yīng)用部署托管服務(wù)

發(fā)布時(shí)間:2020-07-02 17:11:40 來源:網(wǎng)絡(luò) 閱讀:527 作者:ikende 欄目:編程語言

       Glue4Net是一款.NET平臺(tái)下的應(yīng)用部署托管服務(wù),可以配置N個(gè)不同目錄下的.NET應(yīng)用并加載到不同的應(yīng)用域中,并提供自動(dòng)識(shí)別應(yīng)用文件的變更來重新加載應(yīng)用。通過Glue4Net應(yīng)用加載容器可以大大節(jié)省.NET應(yīng)用的部署和更新維護(hù)工作。

容器結(jié)構(gòu)

Glue4Ne應(yīng)用部署托管服務(wù)

支持功能

  • 自動(dòng)加載目錄的.NET程序.

  • 自動(dòng)加載目錄下的代碼文件并添加到應(yīng)用域中.

  • 提供自成定義模塊定義,加載應(yīng)用的時(shí)候執(zhí)行.

  • 自定義監(jiān)控文件變更,變更重新加載相應(yīng)的服務(wù).

使用

容器提供命令行和windows服務(wù)模式,可以通過install.bat注冊到windwos服務(wù)中運(yùn)行,容器可以通過以下連接下載

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

Glue4Ne應(yīng)用部署托管服務(wù)

托管應(yīng)用

應(yīng)用可以是編寫好的DLL或直接相應(yīng)的代碼文件(.cs或.vb)可以存放到任意容器可以訪問的目錄下.通過編輯domains.config文件把應(yīng)用添加到容器中(修改文件后并不需要重啟Glue4Net,容器會(huì)自動(dòng)加載).

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

只需要在domains配置節(jié)添加相關(guān)應(yīng)用的信息.

  • name
    應(yīng)用名稱,在容器中是唯一

  • path
    應(yīng)用所在的目錄,如果不是全路徑的情況則會(huì)從當(dāng)前容器目錄下查找相應(yīng)的子目錄

  • compiler
    是否開啟編譯源代碼功能

  • updateWatch
    是否開啟文件更新監(jiān)控,如果發(fā)現(xiàn)文件變更則重啟應(yīng)用

  • watchFilter
    監(jiān)控的文件類型

添加運(yùn)行模塊

容器只會(huì)根據(jù)配置信息把應(yīng)用加載到相應(yīng)的域中,是不會(huì)執(zhí)行任何相關(guān)代碼.如果需要容器加載應(yīng)用后執(zhí)行某些功能,則在編寫應(yīng)用的時(shí)候需要有類實(shí)現(xiàn)IAppModule接口.容器會(huì)遍歷所有這些接口的實(shí)現(xiàn)類實(shí)例化并執(zhí)行.

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

應(yīng)用配置信息

在編寫應(yīng)用的時(shí)候很多信息都依賴于配置文件,那當(dāng)容器加載應(yīng)用后,應(yīng)用相應(yīng)的配置文件是如何處理呢?只需要把配置信息存放到應(yīng)用目錄下的app.config即可.

如添加一個(gè)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問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI