none
utilisation EWS : temps de réponse trop long RRS feed

  • Question

  • Bonjour,

    j'utilise le webservice pour ajouter des rendez-vous et les lister.

    Aucun problème tant que le nombre de rendez-vous ne dépasse pas 5, ensuite, ça devient de plus en plus long.

    y a t'il un paramétrage à faire pour optimiser le retour car par exemple, il faut entre 3 et 10 secondes pour récupérer le listing des rendez-vous d'un compte (qui peut contenir 20 à 30 rendez-vous par jour) pour une seule journée.

    La méthode que j'utilise est FindAppointments.

    ci-dessous le code :

    try
                {
                    // récupération de l'utilisateur sur lequel on veut lister les rdv
                    Mailbox mb = new Mailbox(AccountEmail);

                    FolderId fid = new FolderId(WellKnownFolderName.Calendar, mb);

                    //pour rechercher les rdv d'aujourd'hui et demain sur le compte en question
                    foreach (Appointment rdv in esi.FindAppointments(fid, new CalendarView(DateTime.Now, DateTime.Now.AddDays(nb_jours))))
                    {
                        //pour gérer les propiétés étendues !
                        var _customPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, AppointmentSchema.MyResponseType, AppointmentSchema.IsMeeting, AppointmentSchema.ICalUid);
                        _customPropertySet.RequestedBodyType = BodyType.Text;
                        rdv.Load(_customPropertySet);

                        Rendezvous r = new Rendezvous()
                        {
                            Id = rdv.Id.UniqueId,
                            AccountEmail = rdv.Organizer.Address.ToString(),
                            Subject = rdv.Subject,
                            Body = rdv.Body.Text,
                            Location = rdv.Location,
                            Start = rdv.Start.ToString(),
                            End = rdv.End.ToString()
                        };

                        if (rdv.RequiredAttendees.ToString() == "Microsoft.Exchange.WebServices.Data.AttendeeCollection")
                        {
                            r.RequiredAttendees = "";
                        }
                        else
                        {
                            r.RequiredAttendees = rdv.RequiredAttendees.ToString();
                        }

                        if (rdv.OptionalAttendees.ToString() == "Microsoft.Exchange.WebServices.Data.AttendeeCollection")
                        {
                            r.OptionalAttendees = "";
                        }
                        else
                        {
                            r.OptionalAttendees = rdv.OptionalAttendees.ToString();
                        }

                        Liste_rendezvous.Add(r);

                    }
                    ret.Liste_rendezvous = Liste_rendezvous;
                }
                catch (Exception ex)
                {
                    ret.errorEWS = ex.Message;
                }

    Merci de vos retours


    lundi 24 novembre 2014 14:32

Réponses

  • Bonjour,

    J'ai trouvé un projet pareil avec le même souci qui est amélioré en utilisant la méthode  ExchangeService.LoadPropertiesForItems.

    J'espère que cela vous sera utile.

    Merci de nous tenir au courant.

    Cordialement,

    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 25 novembre 2014 13:51
    Modérateur