注册COM类以作为服务运行

时间:2015-06-02 07:04:45

标签: winapi com registry atl dcom

我正在开发一个应该作为服务运行的DCOM应用程序。 我设法使这个应用程序作为一个独立的应用程序工作(客户端请求组件,操作系统启动独立的应用程序) - 这样做,我正在执行 MyApp.exe / regserver 但是在我跑完之后 MyApp.exe /服务 客户端无法访问应用程序 - 既不是服务未运行,也不是运行时。 客户端不是由我开发的(实际上,这是Excel RTD功能),所以我无法检查问题发生的步骤。 那么,我应该如何注册一个类/应用程序,以便它作为服务运行? 在VS2013中开发,创建了ATL项目“service exe”。

1 个答案:

答案 0 :(得分:2)

服务ATL项目的COM注册与其应用程序模式非常相似:COM类的相同注册表项,唯一的区别是服务器由服务托管。但更重要的是,客户端跨会话边界访问服务COM对象,并使用不同的凭据。 YourApp.exe作为本地系统登录的服务运行(除非您手动更改或调整COM注册码),而客户端以用户身份登录。

将其设为服务,请务必查看Launch and Activation Permissions以查找COM对象。对于故障排除,您可能还希望更改服务的用户帐户以匹配运行客户端应用程序的用户(以排除与权限和不同用户帐户相关的问题)。