Tengo el siguiente código que crea un espacio de ejecución de PowerShell con la instantánea de Exchange 2010 cargada.No se puede cargar el complemento de Exchange powershell: el inicializador de tipo para 'Microsoft.Exchange.Data.Directory.Globals' lanzó una excepción
Dim runspaceConfig = RunspaceConfiguration.Create()
Dim snapInException As PSSnapInException = Nothing
runspaceConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.E2010", snapInException)
Dim runspace = RunspaceFactory.CreateRunspace(runspaceConfig)
runspace.Open()
Desde la instalación de Visual Studio 2012 empecé a recibir el siguiente mensaje de error cuando ejecuta la línea que añade el complemento a la configuración de espacio de ejecución.
System.Management.Automation.Runspaces.PSSnapInException occurred
HResult=-2146233087
Message=Cannot load Windows PowerShell snap-in Microsoft.Exchange.Management.PowerShell.E2010 because of the following error: The type initializer for 'Microsoft.Exchange.Data.Directory.Globals' threw an exception.
Source=System.Management.Automation
WasThrownFromThrowStatement=False
StackTrace:
at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadCustomPSSnapIn(PSSnapInInfo mshsnapinInfo)
at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadPSSnapIn(PSSnapInInfo mshsnapinInfo)
at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.LoadPSSnapIn(PSSnapInInfo mshsnapinInfo, PSSnapInException& warning)
at System.Management.Automation.Runspaces.RunspaceConfigForSingleShell.DoAddPSSnapIn(String name, PSSnapInException& warning)
at System.Management.Automation.Runspaces.RunspaceConfiguration.AddPSSnapIn(String name, PSSnapInException& warning)
He podido confirmar que nlog de alguna manera está causando este problema. La combinación de crear un registrador nlog antes de crear el espacio de ejecución de powershell da como resultado el error.
Si elimino la sección nlog config de la configuración de mi aplicación y simplemente creo un registrador nlog vacío, el complemento se carga sin error. Además, si dejo la configuración nlog presente en la configuración de mi aplicación pero no creo un registrador nlog, el complemento también se cargó correctamente.
- He intentado construir el proyecto en x64 y x86.
- He vuelto a instalar las herramientas de gestión de intercambio.
- He intentado probar en otra máquina en el entorno de intercambio.
Si alguien puede proporcionarme alguna sugerencia que pueda ayudarme a resolver este problema, lo agradeceré.
que
Hola, gracias por publicar esto, me estoy encontrando exactamente con el mismo problema. Entonces, tengo que desinstalar .net 4.5. Sin embargo, el servidor en el que se está ejecutando tiene '4.0.30319' - ¿Debo volver a realizar el proyecto con el 2010? – BRogers
Si tiene VS 2012 o .NET 4.5 instalados en el servidor de intercambio, entonces está utilizando .NET 4.5 bits para proyectos integrados en 4.0. Probablemente todavía nos puede VS 2012 para su desarrollo, siempre y cuando el proyecto esté construido en .NET 4.0 y el servidor de intercambio no tenga instalado .NET 4.5. En mi caso, tenía una máquina virtual en el entorno del servidor de intercambio que estaba depurando y tuve que usar VS 2010 en esa máquina virtual para la depuración. –
Tuve el mismo problema hace un momento ... ¿sabes si ha habido alguna mejora en esto? –