2
我正在使用Microsoft的EWS API 1.2.1與Exchange Server 2007 SP1進行通信。當我嘗試更新系列中的特定事件時,我總是得到錯誤:「設置操作對於屬性無效」。下面的示例創建了一個成功的masterrecurrence,然後我綁定到這個masterrecurrence並嘗試更新系列中的第3個序列。這失敗了...EWS:在更新系列更新時,設置操作對屬性無效
this is the stack trace:
Microsoft.Exchange.WebServices.Data.ServiceResponseException was unhandled
Message=Set action is invalid for property.
Source=Microsoft.Exchange.WebServices
StackTrace:
at Microsoft.Exchange.WebServices.Data.ServiceResponse.InternalThrowIfNecessary()
at Microsoft.Exchange.WebServices.Data.ServiceResponse.ThrowIfNecessary()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
有人可以幫我解決這個問題嗎?提前致謝!!
下面你會發現我設置的完整測試代碼。
謝謝,最好的問候!
迪米特里
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Exchange.WebServices.Data;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
namespace EWS_testWithRecurrences
{
class Program
{
static void Main(string[] args)
{
ExchangeService _service = new ExchangeService(ExchangeVersion.Exchange2007_SP1, TimeZoneInfo.Utc);
string ls_master = string.Empty;
// SSL - security (for accademius sake)
System.Net.ServicePointManager.ServerCertificateValidationCallback =
delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
};
_service.Url = new Uri("https://exchangeserver/EWS/exchange.asmx");
_service.Credentials = new System.Net.NetworkCredential("username", "password", "domain");
// Add master for accedemius sake
Appointment app = new Appointment(_service);
app.Subject = "Weekly on friday!";
app.Start = new DateTime(2012, 7, 13, 10, 0,0);
DayOfTheWeek[] days = new DayOfTheWeek [] { DayOfTheWeek.Friday };
app.End = new DateTime(2012, 7, 13, 10, 0, 0).AddHours(2);
app.Recurrence = new Recurrence.WeeklyPattern(app.Start.Date, 1, days);
app.Recurrence.StartDate = app.Start.Date;
app.Recurrence.NumberOfOccurrences = 10;
// Save: works!
app.Save();
ls_master = app.Id.UniqueId;
// Occurrence exception (bind to master) and change the 3rd series in the sequence
Appointment occurrence = Appointment.BindToOccurrence(_service, new ItemId(ls_master),3);
occurrence.Subject = "Urgent status update";
occurrence.Start = new DateTime(2012, 7, 11, 14, 0, 0);
occurrence.End = new DateTime(2012, 7, 11, 14, 0, 0).AddHours(2);
occurrence.StartTimeZone = TimeZoneInfo.Utc;
// Save ==> this fails!
occurrence.Update(ConflictResolutionMode.AlwaysOverwrite);
}
}
}