c# - 无法从用 c#(Windows 2003 服务器)编写的 Windows 服务访问 DCOM 对象,但在作为控制台应用程序托管时可以访问该对象

标签 c# .net-3.5 dcom

我用 C# 编写了一个应用程序,它通过 DCOM 对象(对象的名称是 Toolkit 对象)写入会计系统。当此应用程序在 Windows 2003 中作为 Windows 服务托管时,该服务无法打开 DCOM 对象,尽管运行该服务的用户身份具有所有必要的访问权限。

当我使用控制台应用程序托管相同的应用程序时,它工作正常。

我已经尝试通过 DCOMCNFG 调整对 DCOM 对象的访问权限,但似乎没有任何效果。

最佳答案

COM 使用 Windows 消息在进程之间进行通信。所以第一个问题是:你们的服务有消息泵吗?如果不是,那很可能是问题所在。

尝试创建一个隐藏窗口(或一个可见窗口来检验假设)。

关于c# - 无法从用 c#(Windows 2003 服务器)编写的 Windows 服务访问 DCOM 对象,但在作为控制台应用程序托管时可以访问该对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2320167/

相关文章:

c# - 在 TreeView c# 中向上移动树节点的处理程序崩溃

c# - 将 .NET Core 与旧版 .NET 框架 dll 结合使用

c# - 无法在 C# 中加载 C++ DLL

c# - 使用类型泛型时如何正确地将类转换为抽象类?

c# - 如何在不破坏现有客户端的情况下使用 C# 重新实现旧的 DCOM 服务器?

c# - 在 C# 中使用 Selenium 时出现 "no such element"异常

c# - 在 json 中找不到 json.net 所需的属性

c# - 如何创建服务器端定时事件?

c# - 如何在对 C# .NET 3.5 服务器进行 DCOM 调用时可靠地检查客户端身份?

com - DCOM 简单教程