错误:正在检索具有CLSID {0006F03A-0000-0000-C000-000000000046}的组件的COM类工厂

时间:2018-12-20 05:43:48

标签: c# iis asp.net-web-api

我已经在.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

非常感谢

1 个答案:

答案 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,您想做什么。