standard requerimientos full descargar com windows-server-2008

com - requerimientos - windows server 2012



Cómo usar un objeto COM de 32 bits en Windows Server 2008(funciona en 2008 R2 pero no en 2008) (1)

Estoy usando el DllSurrogate predeterminado para habilitar la automatización de un objeto COM de 32 bits en 64 bits. Esto funciona perfectamente en Windows7 64 bit y Windows Server 2008 R2. Sin embargo; sabor regular Windows Server 2008 (pre R2) ignora por completo la entrada DllSurrogate en el registro. Investigué esto durante días y encontré documentación de que el clásico Windows Server 2008 tenía una reflexión de registro que ignora el valor de DllSurrogate si está en blanco. (Dejo el valor de la cadena de registro en blanco para usar el sustituto predeterminado). Para evitar esto no reflejado (no copiado entre registros de 32 bits y de 64 bits), ejecuto el archivo regedit.exe * 32 y configuro las claves. Luego abro el regedit normal y pongo las llaves. Todavía sin suerte. También intenté establecer el valor del registro DllSurrogate en c: / windows / syswow64 / dllhost.exe para que el valor no esté en blanco, pero eso no funciona en absoluto (en ningún sistema operativo). El error que recibo es "no se puede crear el objeto activex".

He reproducido el problema en 2 máquinas diferentes de Windows Server 2008 (Pre R2). También verifiqué que el objeto COM se puede usar en esas máquinas cuando se inicia desde una aplicación de 32 bits. Utilicé LINQPad de 32 bits y 64 bits para probar. LINQPad ejecutándose como 32 bits puede crear el objeto COM. 64bit LINQPad no puede.

[link text] [1] <- Solución que estoy usando (funciona en R2) http://msdn.microsoft.com/en-us/library/aa384253(VS.85).aspx <- Documentation that DllSurrogate registry la entrada no se refleja en Windows Server 2008, pero no sé cómo eludir esta limitación. Intenté usar regedit.exe * 32 para editar directamente el registro de 32 bits.

¿Alguna idea de lo que me falta aquí? ¿Hay algún truco especial para usar el DllSurrogate predeterminado (dllhost.exe) en pre-R2? Reescribir nuestro COM a .NET no es una opción en este momento. Espero que me falta algo, ya que funciona en el último Windows Server 2008 R2.

¡Gracias por echar un vistazo! Danny


¡Problema resuelto! Gracias Hans por ponerme en el camino correcto! Accidentalmente configuré el sistema para usar un archivo DLLHost.exe de 64 bits, que no funcionó ya que no podía iniciar un objeto COM de 32 bits.

De principio a fin, así es como pude usar mi objeto COM de 32 bits desde una aplicación de 64 bits.

  1. Registre el objeto COM con regedit * 32 (c: / windows / syswow64 / regedit)

  2. Realice los siguientes cambios de registro. Asegúrese de poner todo esto bajo Wow6432Node para que se use el DLLHost de 32 bits.

  3. Determine el GUID de su objeto COM buscando el registro para el nombre de clase. es decir. Classname sería el valor que pasas a createobject, como CreateObject ("classname").

  4. Ubique la clave existente HKey_Classes_Root/Wow6432Node/CLSID/[GUID] . Agregue un valor REG_SZ (cadena) nuevo llamado AppID con un GUID de objeto COM como el valor.

  5. Agregue una nueva clave HKey_Classes_Root/Wow6432Node/AppID/[GUID] . Con esta nueva clave, agregue un nuevo valor REG_SZ (cadena) denominado DllSurrogate. Deje el valor en blanco.

  6. Si aún no lo ha hecho, cree una nueva Clave en HKey_Local_Machine/Software/Wow6432Node/Classes/AppID/[GUID] . Si aún no está allí, agregue un nuevo Valor REG_SZ (cadena) llamado DllSurrogate bajo esta clave. Deje el valor en blanco.

Ahora cuando crea su objeto COM debería ver DLLHost.exe * 32 aparecer en el administrador de tareas. Active la columna de la línea de comando en el administrador de tareas y debería ver C:/windows/syswow64/dllhost.exe /processid:{YourCOMGUIDHere}