2
Windows服務可以在註冊表中的參數,如在訪問Windows服務參數從C#
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS\Parameters
我要訪問我自己用C#編寫服務的參數。有沒有官方的方式(例如通過ServiceBase
類)來做到這一點,還是必須硬編碼我想避免的註冊表路徑?
Windows服務可以在註冊表中的參數,如在訪問Windows服務參數從C#
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS\Parameters
我要訪問我自己用C#編寫服務的參數。有沒有官方的方式(例如通過ServiceBase
類)來做到這一點,還是必須硬編碼我想避免的註冊表路徑?
您是否正在尋找WAS啓動服務器的參數,或者註冊表說它應該以什麼開始?
如果您尋找的是被用於啓動應用程序,你可以使用Environment.CommandLine或使激增的主要功能是declaired像
[STAThread]
static void Main(string[] args)
{
// Do something with args array, but il make sure its not null first.
}
如果您正在尋找什麼樣的ARG應該與我開始的參數閱讀該註冊表設置沒有問題。
嗨, 感謝您的回答。但是,我不認爲作爲參數傳遞的(命令行)參數等同於存儲在Parameters註冊表項中的參數。至少,我的測試結果並不如此。 – Christoph 2009-08-28 08:48:35
不,他們不是等量的。通過傳遞給其ServiceMain()處理程序的實際參數啓動服務的唯一時間是用戶在SCM的UI中鍵入啓動參數並按下「開始」按鈕時,或者其他應用程序使用其調用Win32 API StartService()函數lpServiceArgVectors參數填寫。至於傳遞命令行參數(與服務啓動參數不同),它們必須在服務的主註冊表項的「ImagePath」值中指定,並因此在SCM啓動時傳入新的服務流程。 – 2009-09-01 00:51:16