Recientemente he codificado una aplicación .NET Console usando C#. Su propósito era leer los correos electrónicos dentro de una carpeta específica, analizarlos para valores específicos y guardarlos en una base de datos.No puedo acceder a las carpetas públicas root
Nuestro sistema de correo electrónico, en el momento en que originalmente codificaba esto, era Exchange 2003. Sin embargo, me hicieron consciente de que pronto nos estaríamos actualizando a Exchange 2010: ergo, construí el código para trabajar en ambos entornos.
Tras la migración a Exchange 2010, sin embargo, la aplicación se ha roto.
La aplicación utiliza la API de EWS para la funcionalidad de 2010. Cuando intenta utilizar el método FindFolders de ExchangeService para encontrar la raíz de carpetas públicas, arroja una excepción. Aquí está el código:
ExchangeService service = new ExchangeService();
FindFoldersResults findRootFldrs;
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("[email protected]", delegate(string x) {
return true; });
FolderView fview = new FolderView(100);
fview.Traversal = FolderTraversal.Deep;
findRootFldrs = service.FindFolders(WellKnownFolderName.PublicFoldersRoot,
fview);
La excepción: ErrorInvalidSchemaVersionForMailboxVersion
, también conocido como:
El buzón que se solicita no es compatible con el RequestServerVersion especificada
que he intentado:
Configurando el servicio de intercambio a 2007 (arroja un excepción: "Se produjo un error interno del servidor. La operación ha fallado. ")
entregándome el más alto nivel de permiso para la carpeta pública (sin efecto)
La configuración manual de mis credenciales (sin efecto)
puedo ver el carpetas públicas en Outlook 2007; la propiedad publicfoldersroot está disponible en intellisense; el código funciona en carpetas locales (puedo analizar mi bandeja de entrada).
Mi idea actual es que se trata de una configuración reciente de Exchang e 2010: desafortunadamente ese no es realmente mi campo. La excepción me dice que está tratando de usar una versión anterior de Exchange. Establecerlo en 2007 simplemente hace que el código falle con un error interno del servidor.