Korzystam z interfejsu API usługi WebService ExchangeService (Microsoft.Exchange.WebServices.Data
), ale nie mogę znaleźć żadnej metody: Close
lub Dispose
.Pozbyć się/zamknąć usługę Exchange w języku C#?
Czy nie jest konieczne zamknięcie połączenia w jakiś sposób?
Moja metoda wygląda następująco:
public void CheckMails()
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
IMAPCredentials creds = new IMAPCredentials();
service.Credentials = new NetworkCredential(creds.User, creds.Pass, creds.Domain);
service.AutodiscoverUrl(creds.User + "@example.com");
// not the real code from here on but you'll get the idea...
// var emails = service.FindItems();
// emails[0].Load();
// emails[0].Attachments[0].Load();
// ...
}
Nadal musisz zamknąć usługi WCF i jest nieprzyjemny błąd z zawijaniem ich w 'użyciu', dlatego pytam. Dziękuję za wyjaśnienie! –
@SimonWoker: Sam się zastanawiałem, w jaki sposób działa klasa ExchangeService w odniesieniu do Close/Dispose, dlatego właśnie w to wrabiam. Zauważ, że EWS nie jest usługą WCF, ponieważ została zaimplementowana "staroświecka" metoda ASMX. –
@JakobChristensen: Kiedy próbujemy połączyć się z EWS (używając tych samych poświadczeń) kilka razy, po 5 razach otrzymujemy błąd odmowy uprawnień. Czy to oznacza, że EWS utrzymuje połączenie przez określony czas i nie zezwala na więcej połączeń? – Naresh