我正在asp.net web forms框架中开发一个web应用程序。应用程序的要求之一是保存用户未来约会的记录。用户还希望将此约会添加到他的Outlook日历中。现在问题是我的代码在本地工作。当我在本地计算机上测试应用程序时,正在保存约会。但是当我在实时服务器代码上部署应用程序时,会出现错误并且约会不会保存在我的Outlook日历中。请帮助我如何使其在实时服务器上工作。以下是我正在使用的代码
Private Sub AddToCalander()
Try
Dim olApp As Microsoft.Office.Interop.Outlook._Application = DirectCast(New Microsoft.Office.Interop.Outlook.Application(), Microsoft.Office.Interop.Outlook._Application)
Dim mapiNS As Microsoft.Office.Interop.Outlook.NameSpace = olApp.GetNamespace("MAPI")
Dim profile As String = ""
mapiNS.Logon(profile, Nothing, Nothing, Nothing)
Dim apt As Microsoft.Office.Interop.Outlook._AppointmentItem = DirectCast(olApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem), Microsoft.Office.Interop.Outlook._AppointmentItem)
apt.Subject = ddItineraryItems.SelectedItem.Text
apt.Body = txtPItinerary_Desc.Text
apt.Start = CDate(txtDateFromPopup.Text)
apt.End = CDate(txtDateToPopup.Text)
apt.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olTentative
apt.AllDayEvent = False
apt.Location = dcmbDealer.SelectedItem.Text & "," & dcmbShowroom.SelectedItem.Text
apt.Save()
Catch ex As Exception
AlertMessage.showError("Unable to add itinerary detail to outlook calendar")
Exit Sub
End Try
End Sub
我从这里得到代码。 http://www.codeproject.com/Tips/384326/Add-to-Calender-Adding-event-to-Microsoft-Outlook
答案 0 :(得分:0)
如果您打算使用Outlook by Interop,那么您需要在服务器上安装它。没有安装Outlook - 它将无法正常工作。
PS。您的代码仅适用于默认配置的Outlook帐户。只有当您使用外部服务进行约会时,它才会起作用。否则,它会将该约会仅保存到服务器上的Outlook,而不将其更新到本地Outlook
在服务器端的Web应用程序中使用Interop并不是一个好主意,因为它每次都会启动新的Outlook进程,这非常耗费资源。更好的方法是与您正在使用的日历系统集成,如Google日历等。