Aplicación web ASP.NET precompilada: el error & # 8220; System.Web.HttpException file filename.aspx no se ha compilado previamente y no se puede solicitar. & # 8221;

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

  •  03-07-2019
  •  | 
  •  

Pregunta

He creado un proyecto de implementación web utilizando la plantilla para Visual Studio 2008 para una aplicación web ASP.NET 3.5 (no sitio web).

Compilé el proyecto que creó los archivos necesarios para la implementación. Copié las carpetas resultantes (bin, archivos estáticos y todas las carpetas con los marcadores de posición aspx, etc.) en un servidor de ensayo donde quería probar la aplicación.

Si no marco la opción " Permitir que este sitio precompilado se pueda actualizar " , aparece este mensaje de error en cada página que cargo en el navegador:

System.Web.HttpException file PAGENAME.aspx has not been pre-compiled, 
and cannot be requested.

la última línea en el seguimiento de la pila:

System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(
  VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, 
  Boolean allowBuildInPrecompile) +8756366

Si marco la opción, todo está bien (supongo que porque el aspx / ascx real todavía está allí en su forma original).

¿Alguna idea de lo que me estoy perdiendo aquí? ¿Hay alguna configuración o archivo especial que olvidé copiar?

¡Gracias!

Notas:

  • Tengo algunas referencias a asambleas de terceros
  • He comprobado la carpeta bin en el servidor provisional. Contiene el ensamblaje precompilado que contiene todas las clases (utilicé Reflector para analizar el ensamblaje).
¿Fue útil?

Solución

Todos los archivos ASPX solo deben contener

  

Este es un archivo marcador generado por   la herramienta de precompilación, y debería   no se eliminará

Elimine todo en su carpeta bin y vuelva a publicar la web. Asegúrese de tomar los archivos del directorio donde realizó la publicación.

Asegúrese de copiar también los archivos .compiled contenidos en la carpeta bin.

Otros consejos

Para el registro, olvidé copiar estos " .compiled " archivos ( Documentación de MSDN: Manejo de archivos durante la precompilación de ASP.NET ):

  

Para archivos ejecutables en una web ASP.NET   aplicación, los ensamblajes del compilador   y archivos con el nombre de archivo .compilado   extensión. El nombre del ensamblado es   generado por el compilador. los   el archivo compilado no contiene   código ejecutable En cambio, contiene   solo la información que ASP.NET   necesita encontrar el apropiado   montaje.

     

Después de que la aplicación precompilada es   implementado, ASP.NET usa los ensamblados   en la carpeta Bin para procesar solicitudes.   La salida de precompilación incluye   Archivos .aspx o .asmx como marcadores de posición   por páginas. Los archivos de marcador de posición   No contiene ningún código. Existen solo para   proporcionar una forma de invocar ASP.NET para un   solicitud de página específica y ese archivo   los permisos se pueden configurar para restringir   acceso a las páginas.

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