我有一个用c#编写的Windows服务,该服务一直在监听Azure中的一个事件中心。收到消息后,服务将处理该消息并执行一些执行和计算。
作为执行的一部分,它将启动一个名为AutoCal(公司自己的窗口的应用程序)的应用程序,该应用程序是类似于EXCEL的COM组件。
之前我有一个网络api,它执行相同的计算/执行。根据每个请求,它将打开AutoCal并进行一些处理。我已经在项目中添加了AutoCal dll作为参考。
打开AutoCal的代码类似:
(AutoCal.Application)Interaction.CreateObject("AutoCal.Application.NewInstance").
当我在本地测试时,它完全符合预期。但是,一旦将其托管在服务器上,它就会抛出一个错误消息:“无法创建activeX组件”。为了解决这个问题,我已授予向IIS应用程序池打开COM组件的权限。这解决了我的问题。
现在,我有一个Windows服务,该服务也可以打开AutoCal,从哪里可以授予CO组件权限。我已经搜索过了,但是到处都有解决方案,仅适用于ASP.net。
如何为Windows服务更正此问题。在这方面的任何帮助将非常有用。谢谢。
PS:当我在控制台应用程序中编写了相同的代码时,它工作正常。