2010-04-13 4 views
2

Lorsque je modifier un fichier, Mono ASP.NET ne voit pas mes changements, je dois le faire:Comment actualiser la page Mono ASP.NET sans redémarrer le serveur Web?

sudo /etc/init.d/apache2 restart 

Je me souviens quand Mono ASP.NET exécute ASP.NET met en cache la compilation quelque part . Avant, lorsque la page mise à jour ne s'affiche pas, je supprime simplement ce code compilé mis en cache. J'ai juste oublié le chemin exact

Comment faire Mono ASP.NET détecte les changements que j'ai faits dans le programme, sans redémarrer le serveur web?

Répondre

3

Il semble que FileSystemWatcher ne puisse pas voir les changements venant du côté Windows.

Après avoir mis à jour sur le côté Windows, allez sur le côté linux et faire:

contact Web.Config

ou tout autre fichier dans le répertoire. Cela devrait informer ASP.Net de charger votre nouveau code.

+0

merci une tonne, superbe, qui a fait l'affaire, même si je modifie AdminLogin.aspx et juste touchez Web.Config, il charge maintenant la mise à jour AdminLogin.aspx. mais pour AdminLogin.aspx.cs, doit d'abord être compilé (Ctrl + Shift + B) avant de toucher Web.config afin que le code mis à jour soit chargé – Hao

+0

c'est pourquoi je connais votre ID, j'ai vu votre blog du 1er avril à propos de votre pinta financé par la publicité avant http://jpobst.blogspot.com/ nice opensource project – Hao

0

Il s'agit de la commande permettant de redémarrer votre application et de la recompiler si nécessaire. (sans redémarrer le serveur web).

Pouvez-vous le tester si faire le travail?

HttpRuntime.UnloadAppDomain(); 

L'autre façon est de créer un app_offline.htm de fichiers sur la racine, télécharger vos modifications, puis supprimez-le.

+0

Lorsque j'édite l'aspx directement sous Linux, Mono ASP.NET peut récupérer la page mise à jour. mais si le fichier est sauvegardé à partir de Windows, Mono ne peut pas détecter qu'il y a des changements. En passant, le Mono ASP.NET est hébergé dans Vmwared Linux, le code source asp.net est sauvegardé dans Windows Drive. alors que le code source asp.net de windows est monté directement dans/var/www/TestCode – Hao

+0

@Hao de vmawred linux, pouvez-vous utiliser la méthode app_offline.html? et si cela ne fonctionne pas, vous pouvez créer une page asp.net cachée, et juste l'appeler après votre mise à jour, et cette page appelle juste le UnloadAppDomain. Logiquement, après cela, le Mono asp.net doit détecter et recompiler les changements. – Aristos

+0

j'ai déjà essayé que les deux avant que je vous ai répondu, app_offline.html n'a pas fonctionné. Je pense qu'il a quelque chose à voir avec la samba de Linux, il ne signale pas les autres applications si le fichier a été changé sur le réseau. mais si je modifie la page (par exemple je mets la légende sur aspx) directement (toujours sur le dossier samba monté) dans Linux, mono asp.net est capable d'afficher la page mise à jour – Hao

Questions connexes