2009-11-07 26 views
5

Estaba desarrollando una aplicación web ASP.NET MVC en Windows XP y Visual Studio 2008 (usando el servidor web Visual Studio). Recientemente instalé la edición Ultimate de Windows 7 de 64 bits, IIS 7.5 y migré mi aplicación usando appcmd.¿Por qué mi sitio intenta cargar el aspnet_filter.dll de 32 bits incluso cuando 'enable32BitAppOnWin64' está establecido en False?

Si configuro el indicador enable32BitAppOnWin64 == false en mi grupo de aplicaciones, mi aplicación funciona bien. Tan pronto como lo establece el valor true (ya que quiero que se ejecute en 64 bits) que emite esta excepción:

Screen Shot of error

HTTP Error 500.0 - Internal Server Error 
Calling LoadLibraryEx on ISAPI filter "C:\Windows\Microsoft.NET\Framework\v2.0.50727\\aspnet_filter.dll" failed 

Si voy y borrar todos los filtros ISAPI, pero dejo ASP.Net_2.0.50727-64 continuación, este error se va.

¿Cómo puedo resolver esto?

+0

¿Quién eres tú estás Mohit Regard indio Anirudha Gupta http://anirudhagupta.blogspot.com –

+0

sí Anirudha, yo soy un indio ... – Mohit

Respuesta

2

Parece que necesita algunos filtros ISAPI de 64 bits.

Las DLL de 32 bits no se ejecutarán en una máquina de 64 bits a menos que rocíe polvo mágico mágico. Es por eso que existe la bandera enable32BitAppOnWin64.

Establezca la bandera en true y disfrute de la gloria del polvo de los duendes.

+0

Pero creo que tengo ISAPI de 64 bits filtro que está en mi directorio framework64 eso es lo que apuntan por ASP.Net_2.0.50727-64 – Mohit

0

Parece que la asignación de manipulador preConditions para su sitio está un poco desordenada. En IIS MMC vaya al sitio y abra la función Asignaciones de controlador. En el panel Acciones a la derecha, haga clic en el enlace 'Volver a principal'.

3

Su clave está en la ruta mencionada en el error:

"C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_filter.dll"

cuenta de que hay una barra adicional en el camino. En un símbolo elevado, vaya a directorio ../Framework/v2.0.50272 y ejecutar el comando siguiente:

aspent_regiis -r

Alternativamente, utilizar IIS para modificar la ruta correcta del filtro.

Así que no es necesario polvo mágico ... solo necesita registrar el camino correcto. :)

+2

'aspnet_regiis -r' no fue suficiente para solucionar este problema, pero' aspnet_regiis -ua' (para desinstalar TODOS los frameworks asp.net) y ENTONCES el '-r' funcionó. Sin embargo, puede que tenga que arreglar los permisos en su carpeta 'Archivos temporales ASP.NET'. –

0

Acabo de suceder esto en la implementación de un proyecto. Cambiar el grupo de aplicaciones para el sitio web hizo el truco. encontrado la respuesta en Rick Strahl's weblog

Cuestiones relacionadas