簡體   English   中英

Windows 服務使用 C#

[英]Windows service using C#

我正在嘗試開發 windows 服務,該服務偵聽 rabbitMQ 偵聽器並將其偵聽的消息存儲到數據庫中......代碼在調試模式下完美運行,但不能作為 Z0F4137ED1502B5045D6083AA258 服務運行......

調試和服務代碼:

if (!Environment.UserInteractive)
{
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[] 
    { 
        new RabService() 
    };
    ServiceBase.Run(ServicesToRun);
}
else
{
    var service = new RabService();
    service.OnStart(null);
    Thread.Sleep(Timeout.Infinite);
}

任何輸入將不勝感激!

如果您與數據庫的連接字符串使用 windows 安全性,則您的調試用戶可能能夠訪問數據庫。 但是 windows 服務在另一個用戶下運行。

所以只是為了放棄這個選項,我會推薦以下內容:

  • Go 到服務 window。 cmd SERVICES.MSC
  • 尋找您的 windows 服務
  • 打開屬性
  • 登錄屬性
  • Select “此帳戶”,請設置一個有權訪問數據庫的帳戶。

然后重啟windows服務並調試

問候,

請交叉檢查您是否執行了以下步驟:

  1. 在服務類的設計視圖中創建 windows 服務項目 go 后(只需雙擊 service1.cs 類)。

  2. 在設計視圖中右鍵單擊並 select 添加安裝程序。 這將創建一個名為 ProjectInstaller.cs 的安裝程序 class。 如果沒有 ProjectInstaller.cs 或配置 ProjectInstaller.cs 時出現任何錯誤,可能會導致服務控制台中不顯示服務。

  3. Go 到 ProjectInstaller.cs 的設計視圖,你會在那里找到兩個安裝程序->

    一個。 服務安裝程序1

    灣。 服務進程安裝程序1

  4. 右鍵單擊 ServiceInstaller1 和 go 到屬性選項卡

    一個。 使用您希望在服務控制台中查看服務的名稱編輯 ServiceName

    灣。 將 StartType 更改為自動。

  5. 右鍵單擊 ServiceProcessInstaller1 和 go 到屬性選項卡

    一個。 將帳戶更改為 LocalService

保存並嘗試。

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM