locked
Error al cambiar permisos en carpetas públicas - Array dimensions exceeded supported range. RRS feed

  • Pregunta

  • Hola.

    Tengo una servidor exchange 2013 sp1 en una máquina virtual con 24 gb de ram en un host físico con windows server 2012 r2.

    El caso es que tengo unas 5.000 carpetas públicas, y cuando intento asignar permisos desde el ECP a las carpetas y a todas las subcarpetas, el sistema me devuelve el siguiente error (adjunto una captura).

    "Array dimensions exceeded supported range."

    He probado a hacerlo con powershell y funciona correctamente, pero el cliente final quiere poder hacerlo desde la consola de administración. 

    ¿Sabéis cómo resolver éste problema?

    Saludos.

    Más detalles

    Current User: 'S-1-5-21-15935517-1773104461-10498456-2552'
    Exchange Control Panel detected a failure in the Async web request which hosted in the thread 120.
    The error is System.OutOfMemoryException: Array dimensions exceeded supported range.
       at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
       at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
       at Microsoft.Exchange.Management.DDIService.Foreach.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
       at Microsoft.Exchange.Management.DDIService.Sequence.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
       at Microsoft.Exchange.Management.DDIService.Workflow.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
       at Microsoft.Exchange.Management.DDIService.WSSingleObjectDataHandler.ExecuteCore(Workflow workflow)
       at Microsoft.Exchange.Management.DDIService.WSDataHandler.<Execute>b__2()
       at Microsoft.Exchange.Management.ControlPanel.AsyncServiceManager.<>c__DisplayClass4.<InvokeAsyncCore>b__3(Object state)
       at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
       at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
       at Microsoft.Exchange.Management.DDIService.Foreach.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
       at Microsoft.Exchange.Management.DDIService.Sequence.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
       at Microsoft.Exchange.Management.DDIService.Workflow.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
       at Microsoft.Exchange.Management.DDIService.WSSingleObjectDataHandler.ExecuteCore(Workflow workflow)
       at Microsoft.Exchange.Management.DDIService.WSDataHandler.<Execute>b__2()
       at Microsoft.Exchange.Management.ControlPanel.AsyncServiceManager.<>c__DisplayClass4.<InvokeAsyncCore>b__3(Object state)
    .
    Command: 'SetObject'


    MCSA: Windows Server 2008


    • Editado Cimmerio lunes, 19 de mayo de 2014 15:39
    lunes, 19 de mayo de 2014 14:59

Todas las respuestas

  • Hola Cimmerio,

    Actualiza a .NET 4.5 ya que es lo que te esta causando este comportamiento, esto no es directamente relacionado con Exchange:

    Te dejo un fragmento de este problema:

    NET 4.5 has finally come out with a solution for this. .NET Framework 4.5 has introduced a configuration attribute in the run-time schema that supports arrays larger than 2 GB in the total size on the 64-bit applications. All you need to do is enable the gcAllowVeryLargeObjects element that controls the behavior of the .NET garbage-collection system. Here's the procedure:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <runtime>
    <gcAllowVeryLargeObjects enabled="true" />
    </runtime>
    </configuration

    Aqui mas informacion sobre esto: http://msdn.microsoft.com/en-us/library/hh285054(v=vs.110).aspx

    .


    Saludos cordiales | Exchange Trainer | MCDST-MCTS-MCITP-MCSA-MCT

    • Propuesto como respuesta Uriel Almendra miércoles, 21 de mayo de 2014 17:01
    martes, 20 de mayo de 2014 3:48
  • Hola Cimmerio,

    Actualiza a .NET 4.5 ya que es lo que te esta causando este comportamiento, esto no es directamente relacionado con Exchange:

    Te dejo un fragmento de este problema:

    NET 4.5 has finally come out with a solution for this. .NET Framework 4.5 has introduced a configuration attribute in the run-time schema that supports arrays larger than 2 GB in the total size on the 64-bit applications. All you need to do is enable the gcAllowVeryLargeObjects element that controls the behavior of the .NET garbage-collection system. Here's the procedure:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <runtime>
    <gcAllowVeryLargeObjects enabled="true" />
    </runtime>
    </configuration

    Aqui mas informacion sobre esto: http://msdn.microsoft.com/en-us/library/hh285054(v=vs.110).aspx

    .


    Saludos cordiales | Exchange Trainer | MCDST-MCTS-MCITP-MCSA-MCT

    Hola Geovany, muchas gracias por tu respuesta.

    Ya tenía instalado Net 4.5. ¿He de hacer algún cambio en la configuración de IIS?

    Saludos.


    MCSA: Windows Server 2008

    martes, 20 de mayo de 2014 7:08
  • Hola Cimmerio,

    Algo que podrias hacer es desde los los application pools de IIS validar la versión de .NET que tienes y validar que muestren el correcto para el default y los web services.


    Saludos cordiales | Exchange Trainer | MCDST-MCTS-MCITP-MCSA-MCT

    jueves, 29 de mayo de 2014 16:50
  • Hola.

    Lo he comprobado y está como debe estar.

    ¿Alguna otra idea?

    Saludos y gracias.


    MCSA: Windows Server 2008

    jueves, 29 de mayo de 2014 18:03