第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創(chuàng)建Windows服務(wù)的最簡單語言

創(chuàng)建Windows服務(wù)的最簡單語言

慕容森 2019-06-25 13:58:33
創(chuàng)建Windows服務(wù)的最簡單語言構(gòu)建Windows服務(wù)最簡單的語言是什么?在這種情況下,最簡單的定義是代碼數(shù)量最少,以及語言的最低入口點。
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

很明顯,如果您有任何C/C+/Java背景,我認為C#為您提供了最低的切入點。

假設(shè)您使用的是VisualStudio 2008,則可以執(zhí)行以下步驟:

  1. 打開VisualStudio 2008,并選擇FilesNewNewProject菜單選項。
  2. 在“新項目”對話框中.。
    • 在項目類型中選擇VisualC#000-Windows節(jié)點
    • 選擇WindowsService模板
    • 輸入項目的名稱和位置
    • 按OK
  3. 此時,您已經(jīng)掌握了Windows服務(wù)的所有基礎(chǔ)知識。cs文件包含服務(wù)的main()方法,Service1.cs定義System.ServiceProcess.ServiceBase組件,這是新的Windows服務(wù)。
  4. 在Service1組件的屬性網(wǎng)格中,考慮至少設(shè)置以下屬性:
    • (名稱)-給你的對象一個直觀的名稱,例如,Service示例
    • Autolog-設(shè)置為

      false

      為了防止事件默認地寫入應(yīng)用程序事件日志(注意:我不是說您不應(yīng)該記錄服務(wù)事件;我只是更喜歡編寫自己的事件日志而不是應(yīng)用程序日志-請參見下面)
    • 倒計時-設(shè)置為

      true

      如果您想處理系統(tǒng)關(guān)閉
    • ServiceName-定義服務(wù)控制管理器(SCM)將知道您的服務(wù)的名稱
  5. 在ServiceExsquare的代碼中,將刪除OnStart()和OnStop()虛擬函數(shù)。顯然,您需要用任何您的服務(wù)需要做的事情來填充這些內(nèi)容。如果將“倒計時”屬性更改為

    true

    ,您也需要重寫OnShu倒計時方法。我在下面創(chuàng)建了一個示例,說明這些函數(shù)的使用情況。
  6. 此時,ServiceExmen服務(wù)基本上已經(jīng)完成,但是您仍然需要一種方法來安裝它。為此,請在設(shè)計器中打開ServiceExmen組件。右鍵單擊“設(shè)計器”面板中的任何位置,并選擇“添加安裝程序”菜單選項。這將向項目添加一個ProjectInstaller組件,該組件包含兩個附加組件-serviceProcessInstaller1和serviceInstaller1。
  7. 在設(shè)計器中選擇serviceProcessInstaller1組件。在屬性網(wǎng)格中,考慮設(shè)置以下屬性:
    • (Name)-給對象一個直觀的名稱,例如serviceProcessInstaller
    • 帳戶-至少選擇LocalService帳戶,但如果服務(wù)需要更多特權(quán),則可能必須使用NetworkService或LocalSystem帳戶
  8. 在設(shè)計器中選擇serviceInstaller1組件。在屬性網(wǎng)格中,考慮設(shè)置以下屬性:
    • (名稱)-給對象一個直觀的名稱,例如serviceInstaller
    • 描述-該服務(wù)的描述將顯示在您的服務(wù)的SCM中
    • DisplayName-您的服務(wù)的友好名稱,它將顯示在您的服務(wù)的SCM中
    • ServiceName-確保這是您為ServiceExfacum組件的ServiceName屬性選擇的相同名稱(請參見步驟4)
    • StartType-指示您希望服務(wù)是自動啟動還是手動啟動
  9. 請記住,我說過我更喜歡編寫事件而不是自己的事件日志,而不是應(yīng)用程序事件日志。為此,需要將ProjectInstaller中的默認EventLogInstaller替換為自定義的EventLogInstaller。使ProjectInstaller的代碼如下所示:

using System.Diagnostics;
[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();

        EventLogInstaller installer = FindInstaller(this.Installers);
        if (installer != null)
        {
            installer.Log = "ServiceExample"; // enter your event log name here
        }
    }

    private EventLogInstaller FindInstaller(InstallerCollection installers)
    {
        foreach (Installer installer in installers)
        {
            if (installer is EventLogInstaller)
            {
                return (EventLogInstaller)installer;
            }

            EventLogInstaller eventLogInstaller = FindInstaller(installer.Installers);
            if (eventLogInstaller != null)
            {
                return eventLogInstaller;
            }
        }
        return null;
    }
}

此時,您可以構(gòu)建項目以獲得Windows服務(wù)可執(zhí)行文件。若要安裝服務(wù),請打開VisualStudio 2008命令提示符,并導(dǎo)航到可執(zhí)行文件所在的“調(diào)試”或“發(fā)布”目錄。在命令提示符下,鍵入以下內(nèi)容:InstallUtil ServiceExamp e.exe..這將在本地計算機上安裝您的服務(wù)。要卸載它,請在命令提示符下鍵入以下內(nèi)容:InstallUtil/u ServiceExamp e.exe

只要您的服務(wù)沒有運行,您就可以對您的服務(wù)進行更改并重新構(gòu)建,也就是說,您不必卸載您的服務(wù)才能對其進行更改。但是,只要可執(zhí)行文件運行,您將無法用修復(fù)和增強覆蓋可執(zhí)行文件。

若要查看您的服務(wù)正在運行,請打開ServiceExprese.cs文件并進行以下更改:

using System.Diagnostics;
public partial class ServiceExample : ServiceBase
{
    public ServiceExample()
    {
        // Uncomment this line to debug the service.
        //Debugger.Break();

        InitializeComponent();

        // Ties the EventLog member of the ServiceBase base class to the
        // ServiceExample event log created when the service was installed.
        EventLog.Log = "ServiceExample";
    }

    protected override void OnStart(string[] args)
    {
        EventLog.WriteEntry("The service was started successfully.", EventLogEntryType.Information);
    }

    protected override void OnStop()
    {
        EventLog.WriteEntry("The service was stopped successfully.", EventLogEntryType.Information);
    }

    protected override void OnShutdown()
    {
        EventLog.WriteEntry("The service was shutdown successfully", EventLogEntryType.Information);
    }
}

在使用這些更改運行服務(wù)之后,您可以查看事件查看器中的ServiceExsquare事件日志,并查看在那里記錄的消息。

希望這能幫上忙。

編輯:如果您喜歡使用應(yīng)用程序事件日志來記錄事件,而不是使用自定義日志,那么只需對ProjectInstaller.cs文件不做任何更改即可。此外,省略了在ServiceExsample構(gòu)造函數(shù)中設(shè)置EventLog的Log屬性的行。運行服務(wù)時,日志消息將出現(xiàn)在應(yīng)用程序事件日志中。


查看完整回答
反對 回復(fù) 2019-06-25
?
翻翻過去那場雪

TA貢獻2065條經(jīng)驗 獲得超14個贊

我同意所有在其他地方做出響應(yīng)的人,但我要說,只要您在.NET框架中工作,并且有一個初學者項目,您就可以繼續(xù)工作,不要過多地關(guān)注實際語言。我過去做過幾次“Windows服務(wù)”,并且用最少的代碼在VB.NET和C#中開發(fā)了它們。

我建議OP做的是學習如何為它構(gòu)建安裝程序包。安裝該服務(wù)就像執(zhí)行“installutil.exe{驅(qū)動器}\path\to\file.exe”一樣容易,但是當您必須執(zhí)行比部署“hello world”Windows服務(wù)更大的操作時,了解并了解如何以有意義的方式部署該服務(wù)是很好的。

不是為了發(fā)動一場火焰之戰(zhàn),但我已經(jīng)“標準化”了使用維克斯對于我所有的部署包,除了做舊式的com互操作之外,因為要正確安裝是最主要的工作。我迫切希望Wix團隊開發(fā)引導(dǎo)程序,允許您將先決條件和主MSI放入一個EXE文件中,以便下載。他們把它定在3.5,所以我會耐心等待,現(xiàn)在使用WinZip自解壓可執(zhí)行文件。


查看完整回答
反對 回復(fù) 2019-06-25
?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

使用Visualc#,您將在網(wǎng)絡(luò)上找到最多的代碼示例。與VisualStudio相結(jié)合,這是在公園里散步,以獲得一個基本的Windows服務(wù)的啟動和運行。VisualStudio還可以快速創(chuàng)建MSI安裝程序包。

那將是我的選擇


查看完整回答
反對 回復(fù) 2019-06-25
  • 3 回答
  • 0 關(guān)注
  • 648 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號