2008-12-03 6 views
13

J'ai essayé de précompiler mon application ASP.NET MVC et le déployer sur une boîte IIS6 (avec mappage générique), mais je reçois une erreur de rendu des vues partielles (contrôles utilisateur). Cela fonctionne bien sur ma machine dev avant la précompilation.Puis-je précompiler mon application ASP.NET MVC?

L'erreur est:

Server Error in '/' Application.

The partial view 'ListGrid' could not
be found. The following locations were
searched:
~/Views/Initiative/ListGrid.aspx
~/Views/Initiative/ListGrid.ascx
~/Views/Shared/ListGrid.aspx
~/Views/Shared/ListGrid.ascx

J'ai vérifié Views \ Shared pour le fichier et il était pas là, que je pensais était normal parce que son précompilés. Mais juste pour fou rire je mettre un fichier vide dans que les noms de dossier ListGrid.ascx, mais je suis arrivé cette erreur:

Server Error in '/' Application.

The file '/Views/Shared/ListGrid.ascx'
has not been pre-compiled, and cannot
be requested.

I googlé et SO cherchai mais n'a pas trouvé de problèmes similaires, mais n'a pas eu de chance.

+0

J'ai demandé tout à l'heure une question similaire: http://stackoverflow.com/questions/108405/how-can-i-compile-asp-net-aspx-pages-before-loading-them-with-a- webserver – Paco

Répondre

3

Bien que vous pouvez précompiler un site MVC les fichiers de vue ascx et ASPX ne sont pas dans le dll compilé uniquement les fichiers .cs sont. Vous devrez toujours déployer les fichiers d'affichage .aspx et .ascx.

Hope this helps

+8

En fait, le site précompilé contient tout, y compris les fichiers ascx et aspx. Les originaux doivent toujours être présents pour que l'environnement d'exécution ASP.NET puisse y accéder sous forme binaire, mais ils ne sont que des espaces réservés et ne contiennent aucun contenu. –

16

Vous pouvez précompiler une application MVC en plaçant ce dans le post-construire des actions dans les propriétés du projet:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -p "$(ProjectDir)." -v /$(ProjectName) 

Cela prend un peu plus longtemps que sans elle, mais vous obtenez le capacité supplémentaire de détecter certaines erreurs qui se produiraient à l'exécution avant le déploiement.

compilation échouera si vous avez du code invalide dans votre point de vue ou sont des vues manquantes en utilisant cette méthode.

Questions connexes