Bonjour,

je développe une application via VSTO dans outlook permettant de récupérrer et d'afficher la lsite des contacts de notre annuaire partagée (environ 2000 contacts).

Le soucis est qu'a partir de 250 contacts je recois une erreur :

L'administrateur du serveur a restreint le nombre d'éléments pouvant être ouverts simultanément. Fermez les messages que vous avez ouverts ou supprimez des pièces jointes et des images de messages non envoyés que vous êtes en train de composer.
Voici un bout de mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//Permet de récupérer le répertoire de contact de l'utilisateur
             Outlook.Application oApp = new Outlook.Application();
             Outlook.NameSpace oNS = (Outlook.NameSpace)oApp.GetNamespace("mapi");
             oNS.Logon(null, null, true, true);
 
             // On récupère le répertoire des contacts
             //Outlook.MAPIFolder contactFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
 
             Outlook.MAPIFolder opublic = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olPublicFoldersAllPublicFolders).Folders["Annuaire partagé"];
 
             // On applique un filtre pour ne rechercher que les objets de type Contat, et pas les listes de distribution/diffusion
             string strFind = "[MessageClass] = 'IPM.Contact'";
             //Outlook.Items items = contactFolder.Items.Restrict(strFind);
             Outlook.Items items = opublic.Items.Restrict(strFind);
             //Outlook.Items itempublic = opublic.Items;
             String[,] Invite_Outlook = new String[items.Count, 7];
             // Pour chaque contact du répertoire
             for (int i = 0; i < items.Count; i++)
             {
                 try
                 {
                     // On récupère le contact en cours                     
                     Microsoft.Office.Interop.Outlook._ContactItem ContactItem = (Microsoft.Office.Interop.Outlook._ContactItem)items[i];
 
                     // Affichage des informations (Nom, prénom, Email, etc...) dans la listbox
                     Invite_Outlook[i, 0] = ContactItem.LastName + " " + ContactItem.FirstName;
                     ContactItem.Close(Microsoft.Office.Interop.Outlook.OlInspectorClose.olDiscard);
                     //ContactItem = null;                    
                 }
                 catch (Exception ex)
                 { }
             }
             oApp = null;
             oNS = null;
             opublic = null;
             items = null;
             return Invite_Outlook;
        }
Si quelqu'un a une idée, je seche complet.

Merci de m'aider.