2010-09-01 4 views
6

J'ai récemment travaillé sur le serveur de développement ASP.NET (sur un projet MVC et je trouve qu'il est incohérent dans la façon dont il sert les changements que je Par exemple, je modifie le C#/HTML/CSS/JS dans l'environnement de développement et j'exécute la page, et la modification apparaît à l'écran, mais si je modifie à nouveau le HTML et réexécute la page Même le nouveau changement n'apparaît pas, même ctrl + F5 ne le fait pas, je dois arrêter le serveur web et relancer l'application pour que les changements soient mis à jour, est-ce que quelqu'un d'autre a expérimenté ça?ASP.NET Development Server ne met pas à jour les modifications apportées au balisage/code

Si je travaille dans IIS et que je change quelque chose, un ctrl + F5 mettra toujours à jour la page avec les changements que j'ai apportés Je voudrais que le serveur dev soit aussi fiable. Quelqu'un at-il des suggestions?

+0

Je vais avoir le même problème avec Visual Studio 2008 avec un site Web traditionnel basé sur .net 2.0 webforms. Je suis content d'avoir trouvé cette question avant de la poser à nouveau. – NinjaBomb

+0

2 d'entre nous avec la même question et pas de réponses! la solution à ce jour pour moi a été de simplement tuer le processus du serveur de dev quand il commence à agir, et redémarrer l'application. – DaveDev

+0

C'est ce que j'ai fait. Cela me ralentit beaucoup et me rend fou parce que la semaine dernière ça marchait. Pour autant que je sache, rien n'a changé sur ma configuration entre maintenant et maintenant. Je commence à soupçonner que Windows Update a quelque chose à voir avec ça, mais cela semble un peu tiré par les cheveux. – NinjaBomb

Répondre

1

cache de compensation Try .. sur chaque demande

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 

Si fonctionne toujours pas. Essayez cette bande de code dans l'événement de chargement pag

Response.AppendHeader("Pragma", "no-cache"); 
Response.AppendHeader("Cache-Control", "no-cache"); 

Response.CacheControl = "no-cache"; 
Response.Expires = -1; 

response.ExpiresAbsolute = new DateTime(1900, 1, 1); 
response.Cache.SetCacheability(HttpCacheability.NoCache); 
+0

Quelle est la différence entre faire cela et un shift + f5 rafraîchir la page? J'ai vérifié les en-têtes des pages que je demande et elles semblent être complètement refaites à chaque fois. De plus, devoir ajouter cela à chaque page sur laquelle vous travaillez, et vous souvenir de l'enlever avant de passer à la production, semble lourd. – NinjaBomb

+1

Non, pas sur chaque page. Juste à un seul endroit appelé événement Application_BeginRequest sous le fichier global.asax.cs. –

+0

Chaque fois que la page est actualisée, la page Web est mise en cache sur votre ordinateur. Et charger la page plus rapidement au lieu du serveur, il regarde d'abord dans le cache, et s'il trouve des charges à partir de là. Alors une telle chose arrive. Mais dans le code ci-dessus lorsque la première fois la page est chargée, comme dans le code ci-dessus tout d'abord il ne créera pas de cache de demande en cours, mais si de toute façon il crée sa date d'expiration sera 1/1/1900 déjà croisé, de sorte que le cache créé expirera immédiatement après la prochaine demande et il créera à nouveau une nouvelle expiration avec la même vieille date .. et ainsi de suite –

Questions connexes