Po opublikowaniu nowej kompilacji mojej aplikacji sieci web ASP.NET MVC, często widzę ten wyjątek rzucony podczas przeglądania na stronie:ASP.NET MVC Walidacja viewstate MAC udało
System.Web.Mvc.HttpAntiForgeryException: Żeton wymaganego zabezpieczenia przed fałszowaniem nie został dostarczony lub był nieważny. ---> System.Web.HttpException: Sprawdzanie poprawności adresu MAC stanu widoku nie powiodło się. Jeśli ta aplikacja jest hostowana przez farmę sieci Web lub klaster, upewnij się, że konfiguracja określa ten sam klucz sprawdzania poprawności i algorytm sprawdzania poprawności. AutoGenerate nie może być używane w klastrze. ---> System.Web.UI.ViewStateException: Nieprawidłowy stan wyświetlania.
Ten wyjątek będzie nadal występować na każdej stronie odwiedzanej w mojej aplikacji internetowej, dopóki nie zamknę Firefoksa. Po ponownym otwarciu Firefoksa strona działa idealnie. Masz pojęcie, co się dzieje?
Dodatkowe uwagi:
- Nie używam żadnych kontroli internetowych ASP.NET (nie istnieją przypadki runat = „serwer” w mojej aplikacji)
- Jeśli Wyciągam <% = Html .AntiForgeryToken%> z moich stron, ten problem wydaje się znikać
nadal jestem uzyskiwanie błąd nawet gdybym wprowadzić MachineKey takiego. Czy to możliwe, że plik machine.config na serwerze (nie mam do tego dostępu) nie jest poprawnie skonfigurowany? – jesperlind
@jesperlind: (Trochę za późno, ale każdemu, kto to czyta, może pomóc ...) Nadal pojawia się błąd, ponieważ przed dodaniem klucza komputera masz plik cookie. Będzie działać tylko bez problemu, jeśli masz klucz komputera zablokowany od początku. – Guffa
Uwaga: Nie używaj dokładnego klucza komputera z powyższego kodu. Jeśli wszystkie witryny mają ten sam klucz komputera, łatwo go ominąć. Użyj generatora maszynowego online do wygenerowania unikalnego klucza, na przykład http://aspnetresources.com/tools/machineKey – Guffa