1

交換カレンダーを別のカレンダーに同期するアプリケーションを開発しています。2つのカレンダーの予定間のマッピングを維持するために、交換の予定に拡張プロパティを配置しました。定期的な予定の発生から拡張プロパティを削除しようとするまで、すべてが正常に機能しています。これを実行しようとすると、次のエラーが発生します。

The delete action is not supported for this property.

エラーを示すコードスニペットは次のとおりです。

public void ExchangeTest()
{
    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1)
    {
        Credentials = new NetworkCredential("username", "password", "domain")
    };
    service.AutodiscoverUrl("username@domain.com");

    Appointment appt = new Appointment(service)
    {
        Recurrence = new Recurrence.DailyPattern(DateTime.Now, 2) { NumberOfOccurrences = 3},
        Start = DateTime.Now,
        End = DateTime.Now.AddHours(2),
        Subject = "Test Appointment"
    };
    NameResolutionCollection resolutionCollection = service.ResolveName("username", ResolveNameSearchLocation.DirectoryOnly, false);
    string mailboxAddress = resolutionCollection.First().Mailbox.Address;
    FolderId folderId = new FolderId(WellKnownFolderName.Calendar, mailboxAddress);
    appt.Save(folderId);
    PropertySet properties = new PropertySet(AppointmentSchema.ICalUid);
    appt.Load(properties);

    CalendarView view = new CalendarView(DateTime.Today, DateTime.Today.AddDays(8)){PropertySet = properties};

    IEnumerable<Appointment> occurrences = service.FindAppointments(folderId, view)
        .Where(a => a.ICalUid == appt.ICalUid);

    ExtendedPropertyDefinition definition = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "TestProperty", MapiPropertyType.String);
    Appointment firstOccurrence = occurrences.First();
    firstOccurrence.SetExtendedProperty(definition, "test");
    firstOccurrence.Update(ConflictResolutionMode.AutoResolve);

    //The error occurs on the next line.
    firstOccurrence.RemoveExtendedProperty(definition);
    firstOccurrence.Update(ConflictResolutionMode.AutoResolve);

    //clean up
    appt.Delete(DeleteMode.HardDelete);
}

エラーはExchange2007サーバーに対してのみスローされるようです(2010で動作します)。私は何か間違ったことをしていますか、それともこれはExchangeの問題ですか?この問題を回避する方法はありますか?どんな助けでもありがたいです。

4

2 に答える 2

2

結局、RemoveExtendedProperty関数を使用しなくなりました。代わりに、プロパティを再度設定するだけで回避しましたが、空のスペースに設定しました。次に、コード内の空きスペースを処理しました。これは、ExchangeまたはマネージAPIの問題のようです。

于 2012-08-23T16:46:38.137 に答える
0

試しましたか;

appointment.Delete(DeleteMode.SoftDelete,SendCancellationsMode.SendToAllAndSaveCopy);
于 2012-06-22T08:54:57.987 に答える