¿Desea/cierra ExchangeService en C#?
dispose exchangewebservices (2)
Estoy utilizando la API de servicios web de ExchangeService ( Microsoft.Exchange.WebServices.Data
) pero no puedo encontrar ningún método Close
o Dispose
.
¿No es necesario cerrar la conexión de alguna manera?
Mi método se ve así:
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();
// ...
}
Me doy cuenta de que esto es bastante antiguo, pero tuve la misma pregunta recientemente, porque tuvimos un problema después de conectarnos a un buzón y al intentar el mismo método poco después, obtuvimos una excepción HTTP. Luego, después de esperar un minuto más o menos, podemos conectarnos ... pero al igual que los comentarios sobre la respuesta aceptada, esta es probablemente una configuración en el servidor de Exchange.
Para responder a la pregunta, técnicamente hablando, ya que ExchangeService no implementa IDisposable
, no es necesario disponer de una conexión, ni podría incluir una instancia en una declaración de using
.
No hay un método de cierre / disposición en la clase ExchangeService
porque la clase no mantiene una conexión a los servicios web. En su lugar, se crea una nueva conexión HTTP y se cierra según sea necesario.
Por ejemplo, cuando llama a ExchangeService.FindItems, se crea una nueva conexión HTTP con el servidor de Exchange y se cierra dentro de la llamada de método a FindItems
.