Naprawiam błąd z ASP.NET OutputCache i to doprowadza mnie do szaleństwa. Chcemy buforować na serwerze, ale wygląda na to, że nie działa (było to dawno temu, w starszej wersji naszej aplikacji, ale niedawno odkryliśmy błąd przez przypadek).Jak sprawdzić ASP.NET MVC OutputCache działa na serwerze?
Lokalnie, po prostu nie mogę uzyskać buforowania do pracy po stronie serwera. Korzystanie z tego atrybutu:
[OutputCache(CacheProfile = "MyProfile", Location = OutputCacheLocation.Server)] // doesn't work
Teraz w oparciu o kilka rzeczy czytałem przez googling wokół, tutaj jest ewentualnie istotne informacje:
- buforowanie wyjścia jest włączona w IIS (localhost)
- I DO użyj AuthorizeAttribute (niestandardowy z dziedziczeniem). Debagowałem w tym kierunku specjalnie i jestem w 95% przekonany, że to nie jest powód.
- Zmieszałem z różnymi wartościami
VaryByParams
, nic nie działa. - Buforowanie ma działa po stronie klienta.
Mam otworzył sesję perfmon
i dodano kilka liczników z grupy Web Service Cache
, Widzę, że istnieje są buforowane URL ale pamięć podręczna jest brakowało:
Największym problemem/błędem, z którym mamy teraz do czynienia jest to, że OutputCache jest teraz nie działa w ogóle teraz. Udało nam się to naprawić, podając VaryByParams=""
(pusty ciąg znaków). To zrobiło to dla klienta. Ale to jeszcze nie działa po stronie serwera.
Właściwie sprawdzam, czy działa, umieszczając punkt przerwania debugowania w akcji, która powinna być buforowana. Jest trafiony za każdym razem, co powinno oznaczać, że pamięć podręczna nie zostanie trafiona.
Miałem podobny problem i był to problem z profilami pamięci podręcznej. Jeśli nie użyłem profilu pamięci podręcznej, a zamiast tego podłączyłem wartości bezpośrednio do contructor atrybutów, zadziałało. Czy próbowałeś tego? – heymega
@heymega Próbowałem, i to nie robi różnicy. – MarioDS
@MarioDS: Występuje ten sam problem. Czy udało ci się to rozwiązać? – user1107799