我有一个用.NET C#编写的调用COM组件的Windows服务。 我也有一个.NET Windows窗体testing应用程序,我用它来testingCOM组件。 它从testing应用程序工作正常。 但是,当我在Windows服务中使用相同的代码时,什么都不会发生。 COM组件将所有内容都logging到文件中,并且日志文件不会生成的事实表明COM组件甚至没有被调用。
为什么这个工作从我的testing应用程序,但不是在Windows服务?
服务通常与桌面独立运行,因此从服务调用时,对COM组件的调用与UI隔离。 您可以允许一项服务“interactWithDesktop ”,请参阅使用交互式服务部分 。
Microsoft决定将这个功能从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/
您是否在LocalSystem帐户(Windows服务的默认值)中运行您的服务? 您的COM组件可能需要访问可正常运行的帐户中的可用资源…
尝试编辑您的服务并在“ 登录”选项卡上指定您的帐户。