2010-06-15 4 views
1

J'ai construit quelques applications personnalisées qui s'exécutent sur WSS 3 en utilisant le modèle d'application Web Visual Studio 2010. Lorsque je compile l'application, Visual Studio crée le fichier d'assemblage dans le répertoire bin que je copie plus tard vers le serveur de production (une autre machine) avec WSS 3. Le fichier dll d'application compilé est copié dans le dossier bin dans le répertoire virtuel de WSS et fonctionne bien là-bas. Au fur et à mesure que les exigences/applications du projet augmentaient avec le temps, je suis maintenant confronté au problème que la première frappe sur l'assemblage déclenche une compilation dynamique que je voudrais éviter.Application/composant WebPart précompilé asp.net pour WSS/SharePoint

Même si les applications fonctionnent correctement, j'aimerais utiliser le précompilateur ASP sur ma machine de développement afin de réduire le délai de première demande de la page.

J'ai utilisé la commande suivante pour précompiler l'ensemble de l'application Web:

aspnet_precompile -v/-p PATH_TO_WEB_APPLICATION C:\WebApp -errorstack 

La compilation fonctionne très bien sans erreur et je finis avec un couple de fichiers .compiled et également un fichier Web_App_xxxxx.dll intérieur le dossier C: \ WebApp \ bin. À partir de maintenant, je suis un peu perdu sur la façon de procéder.

Pourriez-vous s'il vous plaît me donner un conseil dans quel dossier j'ai besoin de copier les fichiers compilés sur le serveur de production? Ont-ils besoin d'aller dans le dossier bin sur le serveur ou mieux dans le dossier où se trouvent les pages aspx?

En outre, je voudrais savoir si je peux précompiler l'application Web sur une machine de développement sans la métabase IIS en utilisant les commutateurs -v et -p et l'utiliser plus tard dans WSS?

J'ai copié tous les fichiers à partir du dossier C: \ WebApp \ bin vers le dossier bin du serveur, mais malheureusement, le processus de compilation csc continue à fonctionner lorsque vous regardez avec le moniteur de processus sur les événements du serveur.

Cheers,

Mathias

Répondre

1

Je trouve une réponse à cette question précompilation:

Je pensais que le premier coup sur la page de l'application prend beaucoup de temps parce que asp.net doit compiler et je peux gagner du temps en précompilant. L'application s'exécute dans le contexte WSS et permet à l'utilisateur d'accéder à un formulaire Web et de mettre à jour via le formulaire son profil Active Directory. La liste d'adresses globale Exchange est également mise à jour sur la forêt Exchange afin que les modifications soient visibles via la liste d'adresses Outlook et également sur Communicator.

Le code de solution complet avec les rapports, etc. est d'environ 6000 lignes de code C#.

Mon hypothèse concernant la compilation lente en raison de la quantité de lignes était erronée.

J'ai téléchargé le correctif suivant pour asp.net: http://support.microsoft.com/kb/961884

et définissez optimizeCompilations = "true" dans le web.config comme expliqué ici:

http://blogs.msdn.com/b/davidebb/archive/2009/04/15/a-new-flag-to-optimize-asp-net-compilation-behavior.aspx

http://www.paulliebrand.com/2009/09/18/sharepoint-development-to-bin-folder-and-extremely-slow-render-initial-render-times-solution/

Maintenant, le premier succès sur l'application est beaucoup plus rapide.

Un grand merci,

Mathias

1

Les fichiers doivent juste être déposés dans le dossier bin et tout fonctionnera bien. En ce qui concerne le commutateur -v, vous devez l'avoir si vous utilisez l'indicateur -p, mais je pense que cela dépend de la façon dont vous compilez l'application. Vérifiez this link pour en savoir plus. Je ne crois pas que c'est un gros problème si c'est faux/incorrect.

Ce type de scénario ressemble à un travail pour l'environnement Cruise Control .NET.

+0

Matt: Merci pour votre réponse. Si je vous ai bien compris, vous dites que je peux copier les fichiers .compiled et le fichier web_app_xxxx.dll dans le dossier bin et c'est tout? Puis-je exécuter la précompilation sur une machine de développement sans la métabase IIS si l'application est déployée/copiée dans le répertoire bin dans un répertoire virtuel sur le serveur? –

+0

@mathias - Les projets Open Source en sont un bon exemple. Je télécharge la dernière version d'Umbraco CMS et copie les fichiers précompilés dans le dossier bin pour les mises à jour. Tant qu'il y a quelque chose de prévu pour le commutateur -v, cela fonctionnera. – Matt

Questions connexes