我有一个用 .NET C# 编写的 Windows 服务,它调用 COM 组件。我还有一个 .NET Windows 窗体测试应用程序,用于测试 COM 组件。从测试应用程序来看它运行良好。但是,当我在 Windows 服务中使用相同的代码时,什么也没有发生。 COM 组件将所有内容记录到文件中,并且未生成日志文件这一事实暗示 COM 组件甚至没有被调用。
为什么这在我的测试应用程序中有效,但在 Windows 服务中无效?
服务通常与桌面隔离运行,因此当从服务调用时,对 COM 组件的调用与 UI 隔离。您可以允许服务“与桌面交互”“请参阅有关使用交互式服务.
微软(<sarcasm>in their infinite wisdom</sarcasm>
) 决定从 Window vista 中删除此功能并建议将您的应用程序分成多个部分并使用其他机制完成 UI 和服务之间的通信。显然,有些人(包括我自己)不同意,但是,事实就是如此......
http://msdn.microsoft.com/en-us/library/ms683502.aspx
http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/e50d8819-d628-48e2-aa2c-6ac6de8380d9/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)