【发布时间】:2011-09-18 17:55:20
【问题描述】:
我有一个用 .NET C# 编写的 Windows 服务,它调用一个 COM 组件。我还有一个用于测试 COM 组件的 .NET Windows Forms 测试应用程序。它在测试应用程序中运行良好。但是,当我在 Windows 服务中使用相同的代码时,什么也没有发生。 COM 组件将所有内容记录到文件中,并且没有生成日志文件这一事实暗示 COM 组件甚至没有被调用。
为什么这在我的测试应用程序中有效,但在 Windows 服务中无效?
【问题讨论】:
-
请提供有关 COM 组件的一些详细信息。例如,它是用什么写的。也许组件假设它在一个有消息泵的进程中运行。
-
该组件是用Visual Studio 6 用ATL 编写的。它是一个exe 组件(不是dll 或服务)
-
那么,这是您第一次尝试在桌面应用程序之外使用该组件吗?从未在 ASP.NET 或 Web 服务中使用过它?这表明您依赖于消息泵或桌面应用程序之外不存在的其他东西。
-
是的,这是我第一次尝试在桌面应用程序以外的任何地方使用。我认为存在某种权限问题,我正在尝试缩小范围。现在我想缩小是否调用该方法的范围。