Sau khi xuất bản một xây dựng mới của ứng dụng web ASP.NET MVC của tôi, tôi thường thấy ngoại lệ này ném khi duyệt vào trang web:ASP.NET MVC Xác nhận của ViewState MAC thất bại
System.Web.Mvc.HttpAntiForgeryException: Mã thông báo chống giả mạo bắt buộc không được cung cấp hoặc không hợp lệ. ---> System.Web.HttpException: Xác nhận MAC ViewState không thành công. Nếu ứng dụng này được lưu trữ bởi một Web Farm hoặc cluster, hãy đảm bảo rằng cấu hình chỉ định cùng một thuật toán validationKey và validation. AutoGenerate không thể được sử dụng trong một cụm. ---> System.Web.UI.ViewStateException: Chế độ xem không hợp lệ.
Ngoại lệ này sẽ tiếp tục xảy ra trên mỗi trang tôi truy cập trong ứng dụng web của tôi cho đến khi tôi đóng Firefox. Sau khi mở lại Firefox, trang web hoạt động hoàn hảo. Có ai biết cái gì đang xảy ra không?
Ghi chú thêm:
- Tôi không sử dụng bất kỳ điều khiển ASP.NET web (không có trường hợp của runat = "server" trong ứng dụng của tôi)
- Nếu tôi đưa ra các <% = Html .AntiForgeryToken%> từ các trang của tôi, sự cố này dường như biến mất
Tôi vẫn gặp lỗi ngay cả khi tôi nhập machineKey như thế này. Nó có thể là machine.config trên máy chủ (tôi đã không truy cập vào điều này) không được cấu hình chính xác? – jesperlind
@jesperlind: (Một chút trễ, nhưng bất cứ ai đọc điều này có thể được giúp đỡ ...) Bạn vẫn nhận được lỗi vì bạn có một cookie từ trước khi bạn thêm phím máy. Nó sẽ chỉ hoạt động mà không bị cản trở nếu bạn đã khóa máy từ khi bắt đầu. – Guffa
Lưu ý: Không sử dụng khóa máy chính xác từ mã bên trên. Nếu tất cả các trang web có cùng một khóa máy, thật dễ dàng để vượt qua. Sử dụng trình tạo khóa máy trực tuyến để tạo khóa duy nhất, ví dụ http://aspnetresources.com/tools/machineKey – Guffa