Cómo corregir el error de ASP.NET & # 8220; El archivo 'nnn.aspx' no se ha compilado previamente y no se puede solicitar. & # 8221 ;?

StackOverflow https://stackoverflow.com/questions/602117

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo un sitio web de VS 2005 que publico utilizando " Publicar sitio web " y desactivo las tres casillas de verificación. También tengo un proyecto de implementación que recoge los archivos publicados y crea un MSI. Luego instalo el paquete en un servidor de prueba separado.

En otras palabras, todo el sitio está precompilado. Sin embargo, cuando voy a cualquier archivo .aspx en una subcarpeta específica denominada "Servicios", obtengo una HttpException:

  

System.Web.HttpException: el archivo '/myapp/Services/mypage.aspx' no se ha precompilado y no se puede solicitar.

Si voy a un archivo .aspx en otra carpeta, ya sea la raíz u otra subcarpeta, funciona correctamente.

El contenido de mypage.aspx en sí mismo es: <% @ Page Language = " C # " AutoEventWireup = " verdadero " CodeFile = " mypage.aspx.cs " Herencias = " Services_mypage " % > "

En la carpeta / myapp / bin puedo ver un archivo mypage.aspx.989dc2fb.compiled . El contenido de esto parece apuntar a un determinado ensamblaje que también está presente en la carpeta bin.

¿Por qué ocurre este error? El archivo .compiled está allí, y el ensamblaje está allí, y el tipo en cuestión está presente en ese ensamblaje (puedo verlo en el Examinador de objetos). ¿Es algo sobre el nombre o el contenido del archivo .compiled? ¿Tengo la versión incorrecta de alguna manera? ¿Qué significa el número aparentemente aleatorio en el nombre de archivo .compilado y es importante?

También quiero mencionar que este problema apareció repentinamente, y no estoy seguro de qué cambios se pudieron haber hecho ya que funcionó correctamente hace unos días (pero, según mi conocimiento, ninguno).

¿Fue útil?

Solución

No he tenido ese error, pero después de una pequeña búsqueda en Google encontré este enlace, no estoy seguro de haberlo visto todavía: http://forums.asp.net/t/956297.aspx

Editar (agregando el texto clave):

  

Este error se producirá cuando se especifique una referencia en web.config y la carpeta / sitio de implementación no contenga estos archivos DLL instalados en el sistema o la carpeta bin no los contenga (si son ensamblajes privados).   Por ejemplo: (agregue ensamblado = " Namespace1.NameSpace2, Version = x.x.x.x, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 " /)   si su web.config contiene conjuntos de este tipo y el servidor implementado no contiene estos conjuntos en bin o GAC, se producirá este error.

La gente informaba que los ensamblajes faltantes en el servidor de destino terminaron siendo la causa principal, en sus casos, pero tenían el mismo error que usted. Raro.

¿Quizás ese es el problema?

Otros consejos

Solo como una nota al pie de página de todas las respuestas anteriores que resolvieron el problema mediante la nueva publicación para reemplazar un ensamblaje faltante ... Si bien he resuelto este problema anteriormente con esa misma solución, acabo de encontrar otra razón para que ocurra, lo cual puede ayudar a otros.

El AppPool en el que se estaba ejecutando mi sitio tenía " Habilitar aplicaciones de 32 bits " configuración establecida en falso. Al cambiar esto a verdadero a través de la " Configuración avanzada " Diálogo del grupo de aplicaciones que resolví mi problema.

Espero que eso ayude a otros pobres chupadores.

Recibí este error cuando actualicé un sitio de 2.0 a 4.0. El error fue causado por un archivo PrecompiledApp.config en el directorio root del sitio. Una vez que eliminé ese archivo, el sitio comenzó a funcionar.

He estado luchando para solucionar este problema durante los últimos días. Al menos en mi caso, el mensaje de error era completamente engañoso y no tenía nada que ver con el sitio web precompilado. Hay muchos artículos o publicaciones que dan muchas respuestas diferentes que solo aumentan la confusión. Personalmente, creo que este error se debe principalmente a la falta de referencias o versiones incorrectas. Para solucionar el problema lo más rápido posible, debe descartarlo o, de lo contrario, corregir la referencia faltante / incorrecta.

Para hacerlo, debe usar una herramienta llamada " Visor de registro de enlace de ensamblaje " ;. Esta herramienta le dirá qué referencias faltan o tienen versiones incorrectas. Si hay una referencia faltante / no coincidente, continúe y corríjala; de lo contrario, deberá hacer los otros trucos de magia, como verificar que el grupo de aplicaciones sea de 32 bits o permisos.

Pasos:

  1. En su servidor cree las siguientes carpetas

    C: \ fuslog   C: \ fuslog \ logs

  2. Copie el visor de registro de enlace de ensamblaje en su servidor en C: \ fuslog:

    Puede encontrar el programa en una ubicación como esta

    C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ fuslogvw.exe

    Es posible que deba consultar " Archivos de programa " en lugar de " Archivos de programa (x86) "    o busca en diferentes versiones en lugar de " v7.0A "

  3. Ejecute fuslogvw.exe en el servidor

  4. Haz clic en " Configuración ... "

  5. Asegúrese de " Registrar fallas de enlace en el disco " está marcado

  6. Marque la casilla Habilitar ruta de acceso personalizada e ingrese lo siguiente en el cuadro: C: \ fuslog \ logs

  7. Haga clic en Aceptar

  8. Recicle / reinicie su grupo de aplicaciones para imponer un nuevo enlace

  9. Haz clic en Actualizar. Ahora puede ver el enlace fallido aquí

  10. La mejor manera de encontrar el enlace exacto es ir a c: \ fuslog \ logs \ Default. Aquí puede encontrar los fallos de enlace exactos. Algunos son irrelevantes y necesita encontrar el crítico por prueba y error. El mío fue el siguiente fallo:

     System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    

Solucioné el problema agregando la siguiente entrada en mi sitio web web.config:

<configuration>
    ...
    <runtime>
        ...
        <!-- Added this entry to fix the issue -->
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.0" />
        </dependentAssembly>
        ...
    </runtime>
    ...
</configuration>

Espero que esto ayude a otros a solucionar rápidamente el problema.

Se me ha ocurrido este error y lo resolví.

Cuando desee publicar su sitio, active el uso de nombres fijos y ensamblajes de una sola página en Visual Studio

¡Verás que este problema se resolverá!

Me encontré con el mismo problema. Mi problema se solucionó al eliminar los archivos en la carpeta de archivos asp.net temporales en esta carpeta:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root 

Resultó ser un archivo DLL faltante (no web) en el MSI, que supongo que fue utilizado por las páginas que dan el error. Un mensaje de error bastante engañoso que diría, ya que la página fue precompilada, pero faltaba una referencia a esa DLL.

Arreglamos esto reiniciando AppPool, después de probar varias de las otras soluciones. Volver a publicar no era una opción en esta ocasión.

Esta opción resolvió el problema para mí. Básicamente, elimina todos los archivos huérfanos que quedan después de la implementación anterior.

Eliminar archivos adicionales en el destino

Tuve el mismo problema hoy. Algunos foros dicen que hay referencias faltantes en su sitio web y ciertamente lo hacen en su caso. A pesar de que tiene todos los ensamblajes necesarios incluidos, es posible que haya implementado su sitio web en un servidor IIS con marco 3.5, ¿verdad?

Bueno, fue mi caso, así que copié el archivo web.config de un sitio web ASPX 3.5 original y modifiqué algunas partes (eliminé otras referencias de ensamblaje 3.5) e intenté implementarlo de nuevo.

La redistribución de los mismos archivos también solucionó este problema en mi caso.

Entonces, tal vez antes de intentar algo más, primero intente implementar su aplicación nuevamente (el contenido de la carpeta bin debería ser suficiente)

BTW: En mi caso, el error comenzó cuando la unidad C se quedó sin espacio.

¡Feliz codificación! ChiTec

Sé que el error es quejarse de otra cosa, pero prometo en mi caso que el problema fue simplemente el permiso de acceso insuficiente (Servicio de red o Identidad de grupo de aplicaciones o IUSR) para que funcione la cuenta de asp.net con ese archivo específico.

se debió a implementación inusual y mezcla archivos bin con nuevos publicados en nuestro entorno VPS.

solución :

que los permisos de archivos específicos deben reemplazarse con los permisos correctos de la carpeta Bin, como otros archivos que funcionan correctamente (y ese error) dentro de Bin.

ingrese la descripción de la imagen aquí

Comience por verificar el espacio disponible en el disco. Recibí este error cuando nos quedamos sin espacio en el disco duro que aloja IIS.

Para mí, tenía un script que elimina la carpeta de producción y luego copia los nuevos archivos.

La secuencia de comandos no pudo eliminar la carpeta de producción correctamente, por lo que los archivos antiguos y nuevos se mezclaron y causaron el error.

Eliminé manualmente toda la carpeta y la reubicé correctamente ... luego actualicé el script.

Si obtienes este error al ejecutar un script de MSBuild, es probable que tu proyecto sea un proyecto 2.0 o 3.5 y que MSBuild esté usando el compilador 4.0. Intente agregar TargetFrameworkMoniker = " 3.5 " a sus directivas de AspNetCompiler.

Estaba enfrentando este problema cuando implementé algunos cambios en mi sitio existente.

Para recuperarme del problema, eliminé todos los archivos de la carpeta bin y los reubicé.

El problema se resolvió.

Espero que esto pueda ayudar a alguien.

En mi caso, no estaba cargando las DLL comunes como AjaxControlToolkit.dll, Telerik.dll, etc. Subí toda la carpeta publicada y la arreglé para mí.

En caso de una actualización y luego volver a compilar. vuelva a copiar todos los archivos de la carpeta bin y también el archivo en particular actualizado desde su carpeta respectiva.

En mi caso de un error para una vista de la máquina de afeitar de mvc asp.net (.cshtml), la carpeta / bin contenía dos archivos .compiled para la misma vista. Uno de ellos era viejo y necesitaba ser eliminado.

También tuve una segunda vista en la subcarpeta de vistas del controlador que también necesitaba ser eliminada.

El motivo de un problema es que moví una vista de la subcarpeta de vistas del controlador a la carpeta Compartida, sin embargo, mi proceso de implementación (Visual Studio Publish) no eliminó la vista obsoleta y los archivos view.compiled del servidor. Puede indicar a Visual Studio que siempre limpie la carpeta de destino, pero esto hará que el proceso de implementación sea más lento.

Finalmente, encontré el problema. Si usa MVC Framework como yo, actualice su versión de MVC. En mi caso, cambié MVC 4.0.0.0 a 4.0.0.1 y verifiqué todas las referencias del proyecto '' Copia local ''. propiedades a " Verdadero " ;. Después de eso mi problema se resolvió. Consulte la versión de MVC en todos los archivos de configuración (4.0.0.0- > 4.0.0.1)

Y ten cuidado con los mensajes de advertencia del compilador asp.

Tuve el mismo problema cuando comencé a usar VWD Express 2012 (después de usar Express 2010, que solía funcionar bien) Fui a mis paneles de control de hosting y cambié la versión de ASP.NET de 2.0-Classic a 4.0 Classic como se muestra. Problema ido.

Este error también puede ocurrir si tiene un archivo .compiled en un contenedor para una página que ya no forma parte de su proyecto. Recibes esto en lugar de 404 esencialmente. Elimine el archivo .compiled y luego obtendrá 404.

En mi caso, el archivo 'nnn.aspx.xxxxxxxx.compiled' fue eliminado por WebDeploy, porque ejecuté 2 trabajos simultáneos en el mismo espacio de trabajo de Jenkins. El segundo trabajo eliminó algunos archivos durante la creación del paquete WebDeploy.

Esta es la solución para VS 2008.

Marque la casilla como se muestra a continuación para resolver el problema.

 introduce la descripción de la imagen aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top