C# 为什么我收到来自Office的异常';s的Outlook库?
我有一个调用C# 为什么我收到来自Office的异常';s的Outlook库?,c#,outlook,office-interop,C#,Outlook,Office Interop,我有一个调用 Email hello = new Email(appropriate constructor); hello.Email_Send(); 我收到一个例外: 由于以下错误,检索CLSID为{0006F03A-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80080005服务器执行失败(来自HRESULT的异常:0x80080005(CO_E_服务器执行失败)) 来自System.Runtime.InteropServices.COMExcep
Email hello = new Email(appropriate constructor);
hello.Email_Send();
我收到一个例外:
由于以下错误,检索CLSID为{0006F03A-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80080005服务器执行失败(来自HRESULT的异常:0x80080005(CO_E_服务器执行失败))
来自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();
}
}
这个错误以前从未发生过,据我所知,代码也没有变化。似乎不符合我的症状-我的电脑没有停止响应,等等。
如果您能帮助诊断此问题,我们将不胜感激 此错误是由visual studio以管理员身份运行引起的。Outlook不允许单独的用户访问同一邮箱(我在桌面上打开了Outlook应用程序)。即使我与我的域用户具有本地管理员访问权限,以管理员身份运行VS也必须将进程与其他用户对象关联?不太清楚这是怎么回事,但是。。。已解决。我遇到了相同的问题,如前所述:如果Visual Studio以管理员身份运行,则Outlook会阻止另一个具有不同用户的实例。我的VS解决方案正在启动几个项目,我需要它以管理员身份运行,所以我所做的是在调试时以管理员身份运行Outlook。这解决了我的问题。将其中一条评论作为答案发布
当我们关闭正在运行的Outlook实例时,它就像一个符咒 在我的情况下,我运行在带有特殊安全软件的虚拟机下。在我的开发者桌面上,它在Outlook打开时工作正常 但在我的安全虚拟机中,我必须关闭outlook才能使其正常工作。这可能是由于我们的安全软件 outlook保持运行时:
未处理的异常:System.Runtime.InteropServices.COMException:检索CLSID为{0006F03A-0000-0000-C000-0000000000 46}的组件的COM类工厂失败,原因是以下错误:80080005服务器执行失败(来自HRESULT的异常:0x80080005(CO_E_服务器执行失败))。
当它不运行时,工作正常。此错误是由visual studio以管理员身份运行引起的。Outlook不允许单独的用户访问同一邮箱(我在桌面上打开了Outlook应用程序)。即使我与我的域用户具有本地管理员访问权限,以管理员身份运行VS也必须将进程与其他用户对象关联?不太清楚这是怎么回事,但是。。。已解决。请将您的评论作为答案发布,以便其他人可以从中受益。无法将“System.\u ComObject”类型的COM对象强制转换为接口类型“Microsoft.Office.Interop.Outlook.Application”。此操作失败,因为对IID为“{00063001-0000-0000-C000-0000000000 46}”的接口的COM组件的QueryInterface调用由于以下错误而失败:库未注册。(HRESULT的例外:0x8002801D(TYPE_E_libnotregisted))。当我们关闭正在运行的Outlook实例时,它就像一个符咒。现在的问题,我认为需要进入另一个堆栈溢出问题,是知道如何使它工作,即使Outlook正在运行。我有同样的问题。但它出现在我尝试使用Outlook COMI的Windows服务中,我在Powershell脚本中遇到了这个问题。我的问题就这样解决了。当我在管理模式下打开power shell脚本时。暂时以管理员身份运行Outlook可能没问题。然而,始终以管理员身份运行Outlook可能是个坏主意。如果您收到某种恶意电子邮件/附件,利用Outlook中的漏洞进行攻击,则您可能正在向该攻击者授予管理员权限,而不是在您的计算机上授予较低的权限级别。