Asp.Net Validation of viewstate MAC failed Hatası
Eğer sizde Asp.Net projenizde Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
hatası alıyorsanız web.config dosyanızdaki <pages> bölümüne şunları eklediğinizde sorun düzeliyor. Bunu yapmadan önce şunları kontrol etmekte yarar var. ağır yüklenen bir sayfanız varsa, sayfanız bir Web Farm icinde calışmıyorsa, DetailsView, GridView gibi bir kontrol kullanıyorsanız ve bunların sonucunda bu hatayı alıyorsanız. pages validateRequest="false" enableEventValidation="false" enableViewStateMac="false" Bununla birlikte formdan gelen dataların kontrol edilmediğini de bilmeniz gerekiyor. Yani formlardan gelen verileri özel bir kontrol mekanizmasına tabi tutmuyorsanız (bunu yapmayan var mı?) bu metod sizin için tehlikeli olabilir. Sorununuz hala çözülmediyse viewStateEncryptionMode ="Never" 'ı da ekleyerek sonuca ulaşabilirsiniz. Bunu eklediğinizde ise sayfanızada viewState bilgileri encrypt edilmiyor. Bu da bazı zamanlarda tehlikeli olabilir. Gelelim bu hatayı neden aldığımıza. Bildiğiniz gibi Asp.Net sayfayı render ederken form taglarımızın arasına: input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="AEBnx7v.........tS" gibi gizli form elemanları ekler. Bu sadece sayfadaki geçerli kontrollerden işlem yapılmasını sağlayan bir metoddur. PostBack gerçekleştiğinde Asp.Net bu verileri okur ve işlemin yapılıp yapılmayacağına karar verir. Eğer bu veriler geçerli değilse yukarıdaki hatayı alabilirsiniz. Asp.Net in bize sunduğu ajax toolkit veya bunun dışında ekstra ajax kontrolleri ve modal diyaloglarla çağırılmış Asp.Net sayfaları kullandığınızda bu hatayı alma olasılığınız daha da yükselir. Sözü fazla uzatmadan yukarıdaki öneriyi deneyin ve problemi çözün.
Kaynak:http://www.cenksari.com/Yazi/AspNet-Validation-of-viewstate-MAC-failed-Hatasi.aspx
Hiç yorum yok :
Yorum Gönder