对在ASP.NET Webforms中访问Outlook日历API的过程感到困惑



所以我一直在研究以编程方式为Outlook日历创建日历事件。

我看了这里和这里的文件。

有没有关于asp.net网络表单的任何步骤可以在.ASPX页面或该域的代码示例上显示。

我尝试按照此示例将约会添加到日历中,但收到错误"HttpApplicationState不包含"CreateItem"的定义,并且找不到接受类型为"HttpApplicationState"的第一个参数的可访问扩展方法"CreateItem"(是否缺少using指令或程序集引用?(

private void AddAppointment()
{
try
{
Outlook.AppointmentItem newAppointment = (Outlook.AppointmentItem)
Application.CreateItem(Outlook.OlItemType.olAppointmentItem);
newAppointment.Start = DateTime.Now.AddHours(2);
newAppointment.End = DateTime.Now.AddHours(3);
newAppointment.Location = "ConferenceRoom #2345";
newAppointment.Body = "We will discuss progress on the group project.";
newAppointment.AllDayEvent = false;
newAppointment.Subject = "Group Project";
newAppointment.Recipients.Add("Roger Harui");
Outlook.Recipients sentTo = newAppointment.Recipients;
Outlook.Recipient sentInvite = null;
sentInvite = sentTo.Add("Holly Holt");
sentInvite.Type = (int)Outlook.OlMeetingRecipientType.olRequired;
sentInvite = sentTo.Add("David Junca ");
sentInvite.Type = (int)Outlook.OlMeetingRecipientType.olOptional;
sentTo.ResolveAll();
newAppointment.Save();
newAppointment.Display(true);
}
catch (Exception ex)
{
Console.WriteLine("The following error occurred: " + ex.Message);
}
}

这些是我的使用:

using System;
using Outlook = Microsoft.Office.Interop.Outlook;

我是不是完全错了?

编辑#1:我想将outlook日历集成到网站中,以便用户可以在outlook日历中添加约会。我正在ASP.NET网站上寻找用C#实现这一目标的简洁文档,大多数文档都是针对Microsoft.Office.Interop的,它似乎在本地不适用于我。

您在示例中显示的代码在服务器上执行。通常,服务器上没有安装Outlook,因此您会收到错误。此外,服务器上的用户上下文通常是服务帐户的上下文,而不是发起请求的用户的上下文。通常,有不同的方法用于创建日历项。

让您网站的用户将约会添加到日历中的一个简单方法(独立于他们使用的程序(是通过单击网站上的链接从您的网站下载iCalendar文件(ICS(。此文件在客户端上打开,用户可以将约会保存在他们使用的日历应用程序中。有各种nuget包支持您创建文件。

如果网站是公司的内部应用程序,您也可以在网站中添加特定的"添加到Outlook日历"功能,以便了解有关基础设施的一些详细信息。例如,如果公司使用Office 365,则可以使用Microsoft Graph创建日历项。

如果公司使用Exchange服务器,您也可以使用Exchange Web服务(EWS(访问Exchange服务器并在不使用Outlook的情况下创建约会。

最新更新