2015-04-29 9 views
11

Zajmuję się tworzeniem stron WWW dla pracy, a największy hit mojej wydajności pochodzi z usług IIS. Przechowuje pliki w pamięci podręcznej, które nie zostaną zaktualizowane nawet po ich zmianie, chyba że ponownie uruchomię usługi IIS. W szczególności mam na myśli pliki html, js i css. Ten problem zmusza mnie do ciągłego zatrzymywania i uruchamiania aplikacji internetowej. Ponieważ mam Windows 7, wierzę, że mam ISS 7.5. Korzystam z IIS Express. To jest tak frustrujące, że wolałbym IIS, aby nigdy nie cache'ować, nigdy. Nie mam problemu z rozwiązaniem, które zatrzymuje wszystkie formy buforowania lub tylko dla projektu, nad którym pracuję.Jak zatrzymać usługi IIS przed buforowaniem jakichkolwiek plików, nigdy, w żadnych okolicznościach?

Menedżer usług IIS nie jest dla mnie dostępny. Nie znajduje się w System i Security -> Narzędzia administracyjne -> Menedżer IIS, jak sugeruje https://technet.microsoft.com/en-us/library/cc770472%28v=ws.10%29.aspx. Ponadto wyszukiwanie inetmgr w polu Rozpocznij wyszukiwanie nie daje mi żadnych wyników. Z tego powodu szukam poprawki do pliku applicationhost.config IIS.

Próbowałem wprowadzenie następujących w moim applicationhost.config który nie działa:

<location path="ProjectName"> 
    <system.webServer> 
     <staticContent> 
      <clientCache cacheControlCustom="public" cacheControlMode="DisableCache" /> 
     </staticContent> 
     <caching enabled="false" enableKernelCache="false"></caching> 
    </system.webServer> 
</location> 

Najbliższy pytanie na StackOverflow do mojego problemu było IIS cached files never replaced. Jednak Fiddler pokazuje mi, że stare pliki są wysyłane do przeglądarki nawet po ich zmianie.

W jaki sposób usługi IIS mogą wysyłać do przeglądarki zaktualizowane pliki bez konieczności ponownego uruchamiania?

Odpowiedz

-3

Całkiem możliwe, że to przeglądarka, która jest winowajcą. Czy próbowałeś ctrl + F5?

+0

Przeglądarki są problemem i ich twórcy powinni włączyć opcję wyłączania buforowania w wymienionych witrynach. Jednak w przeważającej części przeglądarki będą robić to, co serwer im mówi, co oznacza konfigurację serwera ... aż programiści przeglądarki wyciągną palce. – m12lrpv

7

Podejrzewam, że włączyłeś buforowanie wyjściowe, to będzie wykazywać zachowanie, które opisujesz, gdy recykling puli aplikacji lub ponowne uruchamianie usług IIS powoduje ich wyczyszczenie i umożliwia wyświetlenie nowej zawartości.

Ta strona daje więcej informacji, http://www.iis.net/learn/manage/managing-performance-settings/walkthrough-iis-output-caching

Jeśli używasz IIS Express, to jest prawdopodobne, że buforowanie jest ustawiony na poziomie aplikacji w Twojej web.config, lub na poszczególnych stronach.

Musisz ustawić

<caching> 
    <outputCache enableOutputCache="false" /> 
</caching> 

lub jeśli jego IIS 7+ (Który IIS Express być)

<system.webServer> 
    <caching enabled="false" /> 
</system.webServer> 
1

Jeśli ktoś natknie się na to i chce "myszy" sposób wyłączania Pamięć podręczna w IIS 7 lub tak ... oto odpowiedź z forum IIS na temat: https://forums.iis.net/t/959070.aspx:

Oto aktualizacja dla IIS 7.5 (w W indows 7). Wyłączenie pamięci podręcznej to dobra rzecz do zrobienia podczas programowania, gdy nie zależy Ci na wydajności i chcesz, aby zmiany od razu nastąpiły. Przyspiesza proces programowania. - Uruchom Menedżera usług IIS (typ IIS w programach wyszukiwania i plikach w menu Start) - Przejdź do żądanej witryny w drzewie Połączenia (domyślna witryna internetowa) - Otwórz buforowanie wyjściowe - Edytuj ustawienia funkcji - Odznacz opcję Włącz pamięć podręczną i włącz jądro cache

uzyskać ustawienie w pliku web.config coś takiego:

<caching enabled="false" enableKernelCache="false"> 
      <profiles> 
       <add extension=".css" policy="DontCache" kernelCachePolicy="DontCache" /> 
       <add extension=".script" policy="DontCache" kernelCachePolicy="DontCache" /> 
      </profiles> 
     </caching> 

Więc nie tag tutaj ..

Powiązane problemy