2012-07-07 14 views
5

He creado un dll en Visual Studios 2010. He realizado los siguientes pasos:Classic ASP y COM DLL no funciona en Server 2008 R2 (Microsoft VBScript runtime error '800a01ad' componente ActiveX no puede crear objetos)

  1. acumulación Dado un nombre seguro mediante la asociación de un par de claves (archivo SNK) para que

  2. Teniendo en cada clase un identificador de programa individual y GUID

  3. Como se trata de una DLL de 64 bits que se aseguró de que Usó el RegAsm.exe ubicado en el 'FrameWork64/v4xxxx 'carpeta. Solía ​​RegAsm.exe/código base ECE2.dll

  4. me encontré 'gacutil -i' en la DLL

Todas estas medidas han tenido éxito. La DLL y la página ASP en la que la estoy usando se almacenan en intetpub/wwwroot.

Ahora, la DLL funciona bien en mi computadora portátil y mi computadora doméstica (ambas ejecutan Windows 7 Ultimate). Ahora estoy intentando que funcione en Windows Server 2008 R2. Aquí es donde estoy teniendo el problema.

Completo los mismos pasos que todos los anteriores, todos los cuales son exitosos. Sin embargo cuando corro la página ASP, estoy recibiendo un mensaje de error, lo que sugeriría que no se ha registrado, a pesar de que tiene:

error de ejecución de Microsoft VBScript

'800a01ad' el componente ActiveX no puede crear el objeto : 'ECE2.CSV_DataSet'

Pensé que podría ser una configuración en IIS que necesita ser cambiada. Tenga en cuenta que este servidor ya está configurado para permitir páginas ASP clásicas, así que sé que no es eso. ¿Alguien me puede dar alguna indicación sobre si hay una configuración particular que necesito cambiar en el Servidor, o si hay más circuitos de seguridad que tengo que pasar para que funcione en el Servidor 2008 que no necesito hacer en ¿Windows 7 Ultimate?

+1

Crear un directorio de aplicaciones en el sitio web, poner el asp en él, asegurarse de que el directorio de la aplicación se ejecuta como administrador (no el usuario iis habitual), ¿eso ayuda? - Puede ser un problema de seguridad – Paul

Respuesta

7

Compruebe la configuración avanzada del grupo de aplicaciones en el que se ejecuta esta aplicación ASP. ¿Tiene "Habilitar aplicación de 32 bits" establecida en Verdadero. Si es así, ese es su problema, no puede instanciar un dll de 64 bits en un grupo de 32 bits.

¿Hay alguna razón por la que considere que se trata de un "dll de 64 bits" en lugar de simplemente "Cualquier CPU"? Si no es regasm también para su uso como un dll de 32 bits.

De lo contrario, tendrá que ejecutar esta aplicación ASP sin "Habilitar la aplicación de 32 bits" para que se ejecute como 64 bits, pero es probable que haya una razón por la que se establece en primer lugar. Entonces, el siguiente paso es crear un nuevo grupo de aplicaciones que no tenga esta configuración y hacer que una porción de su ASP se ejecute como una aplicación separada en este grupo.

+1

Acabo de pasar 3 horas tratando de resolver esto. Que TÚ tanto por tu respuesta. Esta configuración funcionó: permitió que un sitio heredado ejecutara la clase ASP con un componente ActiveX de 32 bits. – carrabino

Cuestiones relacionadas