c# dispose exchangewebservices exchange-server-2007

¿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 .