2012-05-01 144 views
1

我得到一個EOSError代碼5 - 當012erTServiceApplication嘗試向 服務管理器註冊服務時拒絕訪問。如何找出爲什麼我得到EOSError代碼5 - 訪問被拒絕註冊服務?

我正在使用XE2 Win7 64位。 32位和64位 目標都會出現錯誤。

我有一個使用ADO連接到數據庫的數據模塊,並且網絡服務器代碼爲 。所有的代碼都在WinUI項目中使用,其中 工作。我也有一個基於相同核心代碼的未經測試的ISAPI DLL。

這是我第一次嘗試將Web服務服務器 合併到NT服務中。

我已經追蹤了VCL代碼,它在 Vcl.SvcMgr的1027行產生了錯誤,但我不知道爲什麼我得到訪問被拒絕錯誤。 I 已經寫了其他通過ADO 連接到數據庫的NT服務,並且沒有遇到這樣的錯誤(儘管用XE編寫)。

任何指針,將不勝感激。

回答

4

您可能會遇到UAC權限問題,該問題期望您以提升狀態運行服務安裝過程,例如從通過「以管理員身份運行」選項啓動的cmd.exe實例運行,但您不實際上這樣做。如果您只有一些服務而不是其他服務,則受影響的服務可能不包含UAC清單,但包含觸發UAC的安裝程序檢測功能的特徵,通常(但不限於)在服務的文件名中包含保留關鍵字或版本資源。

+0

但是,除了詢問堆棧溢出並對此進行教育性猜測之外,*你如何找出爲什麼*你得到「拒絕訪問」的消息?這就是問題所在。 –

+0

無法確定訪問被拒絕的具體原因(如果原因被報告給失敗的調用者,那將是一個安全漏洞)。您只需知道Access Denied錯誤與權限有關,因此您必須查看您的應用正在執行的操作是否涉及受權限保護的資源,直到找到罪魁禍首。 –

+0

誰說需要向呼叫者報告?也許它在其他地方被報告過,具有管理權限的人可以閱讀它。 –