1

当 TServiceApplication 尝试向 ServiceManager 注册服务时,我收到 EOSError 代码 5 - Access Denied。

我正在使用 XE2 Win7 64 位。32 位和 64 位目标都会出现该错误。

我有一个使用 ADO 连接到数据库的数据模块和 Web 服务服务器代码。所有代码都在一个有效的 WinUI 项目中使用。我还有一个基于相同核心代码的未经测试的 ISAPI DLL。

这是我第一次尝试将 Web 服务服务器合并到 NT 服务中。

我已经跟踪了在 Vcl.SvcMgr 的第 1027 行产生错误的 VCL 代码,但我不知道为什么会收到 Access Denied 错误。我写过其他通过ADO连接数据库的NT Services,没有遇到过这样的错误(虽然是用XE写的)。

任何指针将不胜感激。

4

1 回答 1

5

您可能会遇到 UAC 权限问题,该问题需要您在提升的状态下运行服务安装过程,例如从通过“以管理员身份运行”选项启动的 cmd.exe 实例,但您实际上并没有这样做。如果您仅对某些服务而不是其他服务有此问题,则受影响的服务可能不包含 UAC 清单,但包含触发 UAC 安装程序检测功能的特征,通常(但不限于)在您的服务文件名中包含保留关键字或版本资源。

于 2012-05-01T04:17:08.920 回答