我已经在.Net 4.5中创建了Windows服务。服务被编写为打开Outlook客户端。所写的代码是正确的,因为我已在本地主机上运行。但是,当我从IIS服务器运行时,服务器在以下代码行上引发以下错误:
检索具有CLSID的组件的COM类工厂时出错 {0006F03A-0000-0000-C000-000000000046}由于以下原因而失败 错误:0x80040154类未注册
我尝试了以下解决方案:
IIS Server > Advanced Settings > Enable 32 Bit APP = true & Identity=Windows
非常感谢
答案 0 :(得分:0)
IIS以低特权模式运行,我相信它是NETWORK SERVICE
。严格限制该帐户使用与客户端相关的COM对象,并且Outlook客户端在相应的用户帐户下注册。从技术上讲,您更改了(COM配置)[https://docs.microsoft.com/en-us/windows/desktop/com/hkey-local-machine-software-microsoft-ole],但您不应该这样做。
包括Outlook在内的Office对象,要求已登录的用户会话。特别是对于Outlook,它需要一个登录用户,该用户还要具有注册的Outlook配置文件和Exchange许可证(如果适用)。
在您的情况下,当您从本地主机运行它时,您将拥有这样的会话-您的会话。在IIS上运行该会话时,该会话不可用。
如果官方不支持并且非常discouraged,您想做什么。