Application Web ASP.NET précompilée: erreur «Le fichier nom_fichier.aspx du fichier System.Web.HttpException n'a pas été précompilé et ne peut pas être demandé.»

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

  •  03-07-2019
  •  | 
  •  

Question

J'ai créé un projet de déploiement Web à l'aide du modèle de Visual Studio 2008 pour une application Web ASP.NET 3.5 (pas un site Web).

J'ai compilé le projet qui a créé les fichiers nécessaires au déploiement. J'ai copié les dossiers résultants (bin, fichiers statiques et tous les dossiers avec les espaces réservés aspx, etc.) sur un serveur de transfert sur lequel je voulais tester l'application.

Si je ne marque pas l'option "Autoriser la mise à jour de ce site précompilé", un message d'erreur s'affiche sur chaque page que je charge dans le navigateur:

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

la dernière ligne de la trace de la pile:

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

Si je coche l'option, tout va bien (je suppose que les aspx / ascx actuels sont toujours présents dans leur forme d'origine).

Avez-vous une idée de ce qui me manque ici? Y at-il un paramètre ou un fichier spécial que j'ai oublié de copier?

Merci!

Notes:

  • J'ai quelques références à des assemblys tiers
  • J'ai vérifié le dossier bin sur le serveur de transfert. Il contient l'assemblage précompilé qui contient toutes les classes (j'ai utilisé Reflector pour analyser l'assemblage).
Était-ce utile?

La solution

Tous les fichiers ASPX ne doivent contenir que

  

Ceci est un fichier marqueur généré par   l'outil de précompilation, et devrait   ne pas être supprimé!

Supprimez tout ce qui se trouve dans votre dossier bin et publiez à nouveau le Web. Assurez-vous de prendre les fichiers du répertoire dans lequel vous avez publié.

Assurez-vous également de copier les fichiers .compiled contenus dans le dossier bin.

Autres conseils

Pour mémoire, j'ai oublié de copier ces fichiers ".compiled". fichiers ( documentation MSDN: gestion des fichiers au cours de la précompilation ASP.NET ):

  

Pour les fichiers exécutables dans un site Web ASP.NET   application, les assemblages du compilateur   et fichiers avec le nom de fichier .compiled   extension. Le nom de l'assemblage est   généré par le compilateur. le   Le fichier compilé ne contient pas   code exécutable. Au lieu de cela, il contient   seules les informations que ASP.NET   a besoin de trouver le bon   assemblage.

     

Après l'application précompilée   déployé, ASP.NET utilise les assemblys   dans le dossier Bin pour traiter les demandes.   La sortie de précompilation comprend   Fichiers .aspx ou .asmx en tant qu'espaces réservés   pour les pages. Les fichiers d'espace réservé   ne contenir aucun code. Ils n'existent que pour   fournir un moyen d’appeler ASP.NET pour un   demande de page spécifique et que ce fichier   les autorisations peuvent être définies pour restreindre   accès aux pages.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top