我有一個windows服務,它在初始化過程中產生多個COM +調用。在某些系統上,這個Windows服務在啓動時會導致死鎖。在服務啓動期間調用CoCreateInstance
至少一個服務或驅動程序在系統啓動
過程中失敗,在服務啓動過程調用CoCreateInstance的問題是,它可能需要其他服務啓動。在等待當前服務進入運行狀態時,SCM不會允許其他服務啓動。解決方案是確保在安裝服務時正確配置服務依賴關係。請參閱http://support.microsoft.com/kb/258943
但是,在Windows Vista/2008/7上運行時應指定哪些服務依賴關係?
服務啓動實際上應該幾乎不包含任何內容。 'DllMain'應該避免大部分系統調用。 – 2010-11-29 21:53:36
是的,這也是我最終實施的非解決方案。我喜歡服務無法啓動的想法,而不是開始成功但隨後停止的服務。但這顯然是不可能的。 – 2010-11-30 11:05:01
不是當你必須處理服務依賴,沒有。 – 2010-12-01 21:03:38