Windows
是否全域安裝了 Windows 服務?
我編寫了一個簡單的 c# windows 服務。如果使用 安裝
installutil
,該服務是否可供系統的所有使用者使用?如果是伺服器作業系統,應該在什麼帳戶下安裝服務,以便在伺服器啟動時自動啟動?
請對此有所了解。
是的。 普通的 Windows 服務本質上是全域的;使用哪個帳戶安裝服務沒有區別。據我所知,Windows 甚至沒有記錄這些資訊。
您確實需要具有管理員權限才能安裝服務。
要將服務配置為隨 Windows 自動啟動,請適當配置服務啟動類型。請參閱如何:將安裝程序添加到您的服務應用程序中的步驟 5 。
*附錄:*如果服務在域帳戶中執行,在某些情況下可能需要將服務配置為延遲啟動。 這個答案解釋瞭如何在 .NET 中做到這一點。如果服務在手動啟動時執行正常,但在自動啟動時生成“無效的使用者名或密碼”類型錯誤,將其配置為延遲啟動可能會有所幫助。我還不確定問題的根本原因。
(如果服務使用
SERVICE_USER_OWN_PROCESS
orSERVICE_USER_SHARE_PROCESS
類型,則每個登錄使用者都有單獨的服務實例,並且此類服務的行為似乎沒有正確記錄。但是,我相信答案是相同的:安裝仍然是全域的,哪個帳戶安裝服務仍然沒有區別。)