我有一个应用程序调用
Email hello = new Email(appropriate constructor);
hello.Email_Send();
我收到了一个异常:
由于以下错误,
检索CLSID为{0006F03A-0000-0000-C000-000000000046}的组件的COM类工厂失败: 80080005服务器执行失败(来自HRESULT的异常: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))。
来自System.Runtime.InteropServices.COMException
。
using O = Microsoft.Office.Interop.Outlook;
class Email
{
public void Email_Send()
{
O.Application outlook = new O.Application(); //Exception thrown here.
O.MailItem message = outlook.CreateItem(O.OlItemType.olMailItem);
message.To = Receiver;
message.CC = Sender;
message.Subject = Subject;
message.Body = "This is an automated message sent at " + DateTime.Now.ToString("HH:mm:ss") + " about " + Body_Topic + System.Environment.NewLine + Body_Content ;
message.Send();
}
}
这个错误以前从未发生过,据我所知,代码也没有任何变化。http://support.microsoft.com/kb/825118似乎不适合我的症状-我的计算机不停止响应,等等。任何帮助诊断问题将非常感谢!
发布于 2012-10-14 03:24:37
此错误是由以管理员身份运行的visual studio引起的。Outlook不允许单独的用户访问同一邮箱(我在桌面上打开了outlook应用程序)。即使我拥有域用户的本地管理员访问权限,以管理员身份运行VS也必须将进程关联到不同的用户对象?不太确定这是怎么回事,但是...已解决。
发布于 2017-08-01 05:28:00
我遇到了同样的问题,正如前面所说的:如果Visual Studio是以管理员身份运行的,则Outlook会阻止另一个具有不同用户的实例。我的VS解决方案正在启动几个项目,我需要它以管理员身份运行,所以我所做的就是在调试时以管理员身份运行Outlook。这解决了我的问题。
发布于 2021-04-02 23:46:50
发布其中一条评论作为答案。
当我们关闭正在运行的Outlook实例时,它就像一个护身符。
在我的情况下,我在带有特殊安全软件的VM下运行。在我的开发人员桌面上,当Outlook打开时,它工作得很好。
但在我的安全虚拟机中,我不得不关闭outlook才能让它正常工作。这很可能是因为我们的安全软件。
当outlook保持运行时:Unhandled Exception: System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
当它不运行时,它工作得很好。
https://stackoverflow.com/questions/12861072
复制相似问题