PDA

View Full Version : خطای Validation of viewstate MAC failed



myazdian
چهارشنبه 08 تیر 1390, 10:23 صبح
دوستان سلام

من توی سایتم از کوکی استفاده می کنم ولی وقتی چند دقیقه ای صفحه ای را توی سایت باز نمی کنیم و بعد از این که مثلا 10 دقیقه هست که سایت بازه روی یک لینک توی سایت کلیک میکنم این Error ظاهر میشه...!!!


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.


اگر از دوستان کسی در این زمینه تجربه ای دارد لطفا راهنمایی بفرمایید.

باتشکر

mehdi.mousavi
چهارشنبه 08 تیر 1390, 10:39 صبح
دوستان سلام

من توی سایتم از کوکی استفاده می کنم ولی وقتی چند دقیقه ای صفحه ای را توی سایت باز نمی کنیم و بعد از این که مثلا 10 دقیقه هست که سایت بازه روی یک لینک توی سایت کلیک میکنم این Error ظاهر میشه...!!!


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.


اگر از دوستان کسی در این زمینه تجربه ای دارد لطفا راهنمایی بفرمایید.

باتشکر

سلام.
کافیه در فایل web.config، کلید machineKey رو اضافه کنید:

<machineKey validationKey="B1745B2963292BDDCD3AF9640DC856E2054C1954547513DF44 751ED9A17D12418240A26B6C0B8BACCF6C8FA91C75CCDE8951 7BB5D7E5FA567B7A9729A8E08221" decryptionKey="3415A625CCFBD5C4884E2E6036D615C7AAE7800217486A81D5 ADF075D50DFDEA" validation="SHA1" decryption="AES" />

برای تولید این کلید، می تونید از این آدرس (http://aspnetresources.com/tools/machineKey) استفاده کنید. (Element فوق رو باید در درون system.web قرار بدید).

اما چی باعث میشه این اتفاق بیفته؟ یک Web Farm رو در نظر بگیرید که در اون کلیک اول شما، باعث رسیدن درخواست به دست سرور 1 میشه. ViewState بر اساس کلید تعیین شده در اون ماشین، Encrypt میشه. بعد از 10 دقیقه، وقتی شما کلیک دوم رو روی صفحه انجام میدید، درخواست به دست همون سرور نمیرسه، بلکه سرور شماره 2 وظیفه Handle کردن اون درخواست رو عهده دار میشه. سرور 2، کلید مخصوص خودش رو داره و وقتی نمیتونه بر اساس اون کلید، ViewState رو Decrypt کنه، خطای فوق رخ میده. شما وقتی در web.config کلید رو set می کنید، ASP.NET برای Encrypt/Decrypt کردن ViewState از همون کلید استفاده میکنه و به سراغ machine.config نخواهد رفت.

موفق باشید.

shahab_ksh
جمعه 19 اسفند 1390, 00:21 صبح
وقتی روی لوکال هاست هم هست این مشکل هست دو سرور دیگه نیست

dbdbdb
یک شنبه 02 تیر 1392, 11:32 صبح
دوستمون راست میگه پس تو لوکالم که اینطوریه؟؟
چرا؟؟

behnazmdy
دوشنبه 02 اسفند 1395, 15:34 عصر
میشه متنش را کامل بزارید