Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我收到来自Office的异常';s的Outlook库?_C#_Outlook_Office Interop - Fatal编程技术网

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中的漏洞进行攻击,则您可能正在向该攻击者授予管理员权限,而不是在您的计算机上授予较低的权限级别。