2016-10-18 10 views
0

EWS API 2.0を使用して、Outlook会議アイテムの場所と件名を更新しました。私は、場所と被験者の両方が見通しカレンダーに反映されているのを見ることができます。しかし、予定アイテムを開くと、その場所は空白になりますが、更新された件名は引き続き表示されます。予定アイテムのEWS更新場所フィールドが機能しません

以下

は、私が使用するコードです:

Appointment appointment = Appointment.Bind(_service, ConvertId(entryId)); 
appointment.Location = location; 
appointment.Subject = "Server Update Subject"; 
appointment.Update(ConflictResolutionMode.AutoResolve, SendInvitationsOrCancellationsMode.SendToNone); 

PS:私は、Outlookアドイン(VSTO)可能な会議室を検索し、会議アイテムを更新するために、自分のWebアプリケーションを開くために使用します。

サーバー側(EWS経由)でルーム(場所)が更新されるとすぐに、Outlookのカレンダーに変更が反映されていることがわかりますが、Outlookの予定されている予定項目には表示されません。

私はOutlookで予定アイテムを閉じて、予定アイテムを開いて更新を表示する必要がありますが、更新された件名のみが表示され、場所は表示されません。更新された位置を表示するには

が反映され、私は、Outlookを閉じて、再度開き、それを場所を確認する必要がある...しようとするもののために

コメントまたは方向は素晴らしい理解されるであろう!ありがとうございます:-)

答えて

0

最後に、何時間もの研究の結果、このことが分かりました。

Outlookは、アプリケーションを再オープンしてオブジェクトへのすべての参照を解放するまで(再開前に)、EWSによる変更(またはサーバー側からの変更)を更新しないという既知の問題です。だから、解決策は、以下のようにMarshal.ReleaseComObjectを追加することです:

Marshal.ReleaseComObject(apptItem); 

(近い展望アプリケーションと同じ)オブジェクトを解放するために、その後のEntryIDを使用してオブジェクトを再オープンします。

string eid = item.EntryID; 
--- release the app object --- 
var ns = application.GetNamespace("MAPI");// application.Session;// application.GetNamespace("MAPI"); 

Outlook.AppointmentItem appoinment = ns.GetItemFromID(eid) as Outlook.AppointmentItem; 

このソリューションが、私と同じ問題に遭遇した人に役立つことを願います。

関連する問題