post icon

Como ejecutar aplicaciones ASP.Net de 32 bits en IIS con Windows de 64 bits

Cuando trabajamos con servidores Windows de 64 bits y tenemos que usar el framework de .Net normalmente instalamos la versión para dicha arquitectura, lo cual es correcto. Aunque con algunas aplicaciones podriamos tener problemas porque sólo corren sobre la arquitectura x86_32, y es cuando debemos “forzar” la ejecución de dicho framework.

La aplicación que siempre sufre de este “problema” es Reporting Service, y hoy me ocurrió con el reporteador ReportMan cuando me lanzó la siguiente excepción:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {DC30E149-4129-450F-BDFE-BD9E6F31147E} failed due to the following error: 80040154.

Para los que necesiten, antes de comenzar con la guía les dejo los enlaces del framework 2.0 para ambas arquitecturas: 32 bits y 64 bits. Una vez que tengan instaladas ambas versiones podremos configurar lo que necesitamos.

Ejecutamos el siguiente script desde una ventana de terminal (cmd), el mismo permitirá que se ejecuten aplicaciones de 32 bits en el Pool de las aplicaciones de IIS

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Si quieren revertir simplemente deben pasarle el parametro 0 (cero) o false, asi:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0

El siguiente paso es registrar la versión de framework que necesitamos en el ISS, para la versión 1.1 sería así:

%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i

Y para la versión 2.0 (puede variar la versión de compilación o versión mayor, en ese caso sólo deben cambiar al path correcto y listo)

%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

Finalmente debemos permitir la ejecución de dicha ejecución, abrimos el administrador del IIS, ejecutando inetmgr en el Run de Windows.

Se posicionan en Extensiones de servicios Web, y verán un nuevo item que es la versión de 32 bits del framework (también estará la de 64) que tiene prohibida su ejecución, lo seleccionan y le dan clic al botón permitir, con eso ya es suficiente para que funcione todo como antes. Aqui una captura de pantalla:

Comentarios desde Facebook:

  1. avatar
    bemo PARAGUAY Internet Explorer Windows
    18 marzo 2013 at 14:20 #

    oicoite la nde codigo jare jajajaja. :-D;)

  2. avatar
    xiefuchun.net CHINA Google Chrome Windows
    7 febrero 2012 at 06:22 #

    OK ,Thank you。
    I ask
    System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {F9C322A5-C2DF-4030-BE3C-AFF2FD9BBDD3} failed due to the following error: 80040154. ?????

Responder