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;
-
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).
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.