2013-06-05 2 views
4

Exchange Server 2007 SP3에서 EWS Managed API 2.0을 사용할 때 이상한 문제가 있습니다. 그래서 나중에 회의를 업데이트하거나 취소하는 데 사용할 수 있습니다EWS : Appoitnment Item.Id.UniqueId가 상수가 아닙니다.

appointment.Save(SendInvitationsMode.SendToAllAndSaveCopy); 

appointment.Id.UniqueId; 

나는 내 로컬 DB에 저장 : 나는 약속을 만들고 그것을 저장하면

, 나는 다음과 같은 코드를 사용하여 ID를 얻을 수 그것.

나중에 내가 다음 코드를 사용 충돌하는 회의를 검색 할 때

CalendarView view = new CalendarView(Start, End); 
view.PropertySet = new PropertySet(); 
Folder rootfolder = Folder.Bind(service, WellKnownFolderName.Calendar); 
//view.PropertySet.Add(AppointmentSchema.Resources); 
view.PropertySet.Add(ItemSchema.Id); 
view.PropertySet.Add(AppointmentSchema.Subject); 
view.PropertySet.Add(AppointmentSchema.Start); 
view.PropertySet.Add(AppointmentSchema.Duration); 
view.PropertySet.Add(AppointmentSchema.End); 
view.PropertySet.Add(AppointmentSchema.Organizer); 
view.PropertySet.Add(AppointmentSchema.Id); 
Mailbox mailbox = new Mailbox(Email); 
FolderId id = new FolderId(WellKnownFolderName.Calendar, mailbox); 
CalendarFolder folder = CalendarFolder.Bind(service, id); 
FindItemsResults<Appointment> findResults = folder.FindAppointments(view); 

//Iterating through the conflicting meetings returned by folder.FindAppointments 
foreach (Appointment app in findResults.Items) 
    { 
    appts.Rows.Add(app.Subject, app.Start, app.End, app.Duration, app.Id.UniqueId); 
    } 

나는 충돌하는 회의 중 하나의 ID에 액세스 할 때 찾을 그것을 내가 가지고있는 ID와 다른 다른 모든 정보는 동일하지만 내 로컬 DB에 있습니다. 내 ID를 사용하여 약속에 바인딩 할 수는 있지만 문제는 동일한 회의가 이제 2 개의 다른 ID를 보유한다는 것입니다. 왜 EWS가 약속의 고유 ID를 저장하지 않고 왜 (appointment.Id.UniqueId)가 일정하지 않습니까?

이 문제에 대한 명확한 해결책을 찾지 못했습니다.

답변

3

실제로 이것은 EWS Managed API를 사용하는 사람들이 직면하는 매우 일반적인 문제입니다.
약속을 다른 폴더로 옮길 때 고유 ID가 변경되는 이유는 무엇입니까 (이유는 모르겠 음).
여기 내 게시물에 질문과 답을 찾을 수 있습니다 Exchange web services: why is ItemId not constant? [continued]

0


이 들어오는 일정 업데이트를 처리 할 때 Outlook이 약속을 재현 있음을 유의하십시오.

4

약속 자체는 변화가 나던 고유 ID를 가지고 있지 않지만, 약속 속성 ICalUid (나는 그것의 고유 한 일정 항목 ID를 생각)이 : 정말 독특하고있다 충족 후 변경되지 않습니다

appointment.ICalUid; 

을 내가 테스트 한만큼 업데이트 .. 한 사람을 위해 1000 회의 회의를 생성했으며 모든 ICalUid는 고유했습니다. 그것을 사용해보십시오, 그것은 나를 도왔습니다 :)

관련 문제