我正在开发一个应作为服务运行的DCOM应用程序。 我设法使这个应用程序作为一个独立的应用程序(客户端请求的组件,并启动独立的应用程序) - 做到这一点,我正在执行 MyApp.exe/regserver 但我运行后 MyApp .exe/service 客户端无法访问应用程序 - 既不在服务运行时,也不在服务器运行时。 客户端不是由我开发的(实际上,这是Excel RTD功能),所以我无法检查问题发生的步骤。 那么,我应该如何注册一个类/应用程序,以便它作为服务运行? 在VS2013开发,创建了ATL项目“service exe”。注册COM类作为服务运行
2
A
回答
2
服务的COM注册ATL项目与其应用程序模式非常相似:COM类的注册表键与服务器托管服务的唯一区别相同。然而,更重要的是,客户端跨会话边界访问服务COM对象,并使用不同的凭据。 YourApp.exe作为本地系统登录的服务运行(除非您手动更改或调整了COM注册码),而客户端以用户身份登录。
使其成为服务,请务必查看您的COM对象的Launch and Activation Permissions。对于故障排除,您可能还需要更改服务的用户帐户以匹配运行客户端应用程序的用户(以排除与权限和不同用户帐户相关的问题)。
相关问题
- 1. 为.net窗口服务注册Com-Interop
- 2. WISE - COM服务器注册选项“不注册”不起作用?
- 3. com类库注册
- 4. Delphi - 在ROT中注册com服务器
- 5. 注册并运行PostgreSQL 9.0作为Windows服务
- 6. 在作为服务运行的注册表中访问CLSID。
- 7. 注册为COM Interop
- 8. 如何在运行时注册COM库?
- 9. 没有为“Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionaryFactory”类型服务注册
- 10. @ doctrine.orm.entity_manager不给予注册为服务类
- 11. Android NSD:注册为null服务类型
- 12. 如何为Microsoft.OData.Edm.IEdmModel注册服务类型
- 13. 注册免费COM不为我工作
- 14. COM互操作注册
- 15. Silverlight和UserControl注册为COM
- 16. arcgis com注册
- 17. COM注销/注册类型库问题
- 18. 作为特定用户运行proc com服务器
- 19. 注册失败的尝试Windows服务器上注册一个COM DLL 2012 64
- 20. 在注册为SingleInstance的服务中请求一个注册为InstancePerRequest的服务
- 21. 运行Web服务作为Windows服务
- 22. 我作为服务运行
- 23. 运行odoo作为服务
- 24. 注册broadcastReceiver服务
- 25. 注册Windows服务
- 26. COM注册错误(80040154类没有注册)在VB.Net
- 27. 将可执行文件作为服务运行时,COM调用不起作用
- 28. ATL COM类注册.rgs文件默认
- 29. 类未注册COM DI API PHP
- 30. 动态注册JAX RS服务类
注册不*完全相同。当作为服务托管时,COM类注册需要['AppID'](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682359.aspx)和['LocalService']( https://msdn.microsoft.com/en-us/library/windows/desktop/ms693774.aspx)值来指定服务名称,因此COM可以启动它尚未运行的服务。 –
@RemyLebeau:是的,这是包含在“非常相似”。相同的键,小的服务相关的差异。关键是“/ service”完全覆盖了这一点(特别是:不需要从代码中执行LocalService) - ATL可以直接使用),典型问题与权限有关,而不是注册本身。 –
这也是我的印象。我所做的是: - 创建HKCR/CLSID/{具有正确CLSID的密钥CLSID的类的ProgID - 创建HKCR/CLSID/{CLSID类的值为应用程序的值AppID - 创建HKCR/AppID/{AppID的值} LocalService =服务名称 - 使用dcomcnfg,允许所有内容为“Everyone” 我在服务器启动和类启动时都有调试输出。但日志是空的。 好东西是 - HKCR/CLSID/{CLSID}有关键的“LocalServer32”,但没有尝试作为服务器运行,所以我认为它在HKCR/AppID/{AppID中找到LocalService},但是某些原因无法运行。 – thedimitrius