我有一个我不知道要解决的问题。 我正在使用C#,Visual Studio 2010和我使用Outlook库的错误页面。 在我的项目中,我添加了以下库:“Microsoft.Office.Interop.Outlook” 如果我使用Visual Studio提供给我的服务器运行网站,页面工作正常。 如果我通过IIS运行页面,日志记录会告诉我: “由于以下错误,无法检索具有CLSID {0006F03A-0000-0000-C000-000000000046}的组件的COM类工厂:80070005访问被拒绝。(HRESULT异常:0x80070005(E_ACCESSDENIED))。”
有谁知道为什么会这样? 我该怎么做才能解决它?
我想使用c#创建一个Outlook约会,将此约会保存在我的一个服务器文件夹中,然后通过电子邮件发送它,我该怎么办?
我的代码是:
using Microsoft.Office.Interop;
using Outlook = Microsoft.Office.Interop.Outlook;
using System.Net.Mail;
Outlook.Application outlookApp = (Outlook.Application)new Outlook.Application();
Outlook.AppointmentItem appointment = (Outlook.AppointmentItem)outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
appointment.Subject = subject;
appointment.Body = comments;
appointment.Location = location;
appointment.StartUTC = dateInit;
appointment.EndUTC = dateEnd;
appointment.ReminderSet = true;
appointment.ReminderMinutesBeforeStart = advideInMinutes;
appointment.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olBusy;
string appointmentPath = "c:\\webroot\\appointment\\appointmentName.msg";
appointment.SaveAs(appointmentPath);
MailMessage mail = new MailMessage();
mail.To.Add(new System.Net.Mail.MailAddress("mail@domain.com"));
mail.From = new System.Net.Mail.MailAddress("mail@domain.com", "MyName", System.Text.Encoding.UTF8);
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = true;
mail.Priority = MailPriority.Normal;
Attachment appointmentAttahment = new Attachment(appointmentPath);
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("authsmtp.mydomain.com");
smtp.Credentials = new System.Net.NetworkCredential(Settings.Items["mail@domain.com", "password");
smtp.EnableSsl = false;
smtp.Send(mail);
appointmentAttahment.Dispose();
答案 0 :(得分:1)
看起来您正在尝试从IIS应用程序自动化Outlook。为此,您需要在IIS服务器上安装Outlook。即使您能够正常工作,也不是支持的方案。
http://support.microsoft.com/kb/257757:
“Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会展示在此环境中运行Office时出现不稳定的行为和/或死锁。“
如果您使用的是Exchange服务器,则可以使用Exchange Web Services (EWS)
以下是如何使用EWS创建约会的一个示例: http://msdn.microsoft.com/en-us/library/exchange/dd633661(v=exchg.80).aspx