PDA

View Full Version : سوال: خطا : Validation of viewstate MAC failed



aebrs@yahoo.com
جمعه 28 مهر 1391, 18:44 عصر
خطا : Validation of viewstate MAC failed


مشکل viewstate MACدر برنامه
به تازگی برای اعمال تغییرات در یک برنامه قبلی خواستم تا آنرا مجددا اجرا کنم
صفحه اول نمایش داده می شود و صفحات آزاد، همه در دسترس هستند
هر نوع کاری که با view state ارتباط داشته باشد مثل لاگین و هر نوغ فشردن کلید به خطا برخورد می کند :
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.

در جستجو با این جوابها برخورد و همه را تست کرده ام :
راه حل اول : این تغییرات بر روی IIS اعمال شد و نتیجه نداد




Open IIS
Click on application pools node
Locate your web application's application pool
Right-Click and select Advanace Settings
Set the Idle Time-out(minutes) property to 0 or increase it to 30+ minutes





را حل دوم : این تغییر در وب کانفیگ اجرا شد و جواب نداد


1
2
<sessionState timeout="15" />





راه حل سوم : این تغییر هم در وب کانفیگ اجرا شد و جواب نداد



1
2
<pages enableEventValidation="false" viewStateEncryptionMode="Never">












راه حل چهارم: این تغییر هم در وب کانفیگ اجرا شد و جواب نداد



1
2
<pages enableViewStateMac="false">







راه حل پنجم: کلید زیر در وب کانفیگ اضافه شد و جواب نداد



1
2
<machineKey validationKey="ADCCF116631001A7DCDCC47CEA864E50834 707FDB28F3A25627C39E46012613DA548B9F6D5D4366533E6F A320363680EC112B4994CFE056BA29D1B984C80EDC9" decryptionKey="D56A7BBF7EC5A15ECBD2F8D0A3578D3A728 AF79F4815C27FB8CEF1942DD4D1A9" validation="SHA1" decryption="AES" />







راه حل ششم : ترکیب همه راه حل های فوق
نتیجه : خطا همچنان بر قرار است
من در محیط استودیو 2008 دات نت 3.5 و زبان سی شارپ کار میکنم
قبلا این مشکل را با اضافه نمودن machinekey در وب کانفیگ حل کرده ام ولی الان نمی توانم جواب بگیرم
برنامه بر روی یک رایانه اجرا می شود و لوکال هست
اتصال دیتا بیس و غیره و غیره مشکل ندارد و واکشی صورت می گیرد
آیا شما تجربه در این موضوع داشته اید که حل شده باشد
نظر شما چیست؟



با تشکر

mohsen musavi
جمعه 28 مهر 1391, 23:56 عصر
- dotnetframework رو update کن ببین مشکلت حل میشه.

aebrs@yahoo.com
شنبه 29 مهر 1391, 04:28 صبح
- dotnetframework رو update کن ببین مشکلت حل میشه.

پاسخ شما مرتبط نمی باشد
جهت اطلاع سیستم من freeze می باشد و با خاموش روشن شدن به وضعیت پس از نصب بر می گردد
بنابر این با اطمینان می توان گفت در تمام سیستم هیچ تغییری بوجود نیامده است

aebrs@yahoo.com
شنبه 29 مهر 1391, 05:27 صبح
مشکل را پیدا کردم
من در قسمت header صفحه Master page از تگ <base استفاده کرده بودم
کاربرد این تک تعیین آدرس پایه برای بقیه لینک ها و آدرسها می باشد
اما همین تگ به غیر معتبر شدن صفحه نیز منجر می شد
این تگ خیلی جاهای دیگر هم مزاحمت ایجاد می کند و در حقیقت می توان آنرا قبل از کامپایل و پابلیش نمودن به سایت اضافه نمود
امید وارم ذکر این تجربه برای دیگران هم مفید باشد

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
As I found out, there was a <base .... tag in header part of my master page, that I added in last tie and before publishing. This tag specify a default URL and a default target for all links on a page. This was the main cause of the fault, this time.
I hope that it will help others too.
regards.
Ebrahimi

mohsen musavi
شنبه 29 مهر 1391, 10:27 صبح
دوست عزیز موردی که شما فرمودید علت های زیادی میتونه داشته باشه.همانطوریکه در اینجا (http://forums.asp.net/t/955145.aspx) مشاهده میکنید دلایل بروز این خطا بسیار میباشد.
و البته یک باگ (http://support.microsoft.com/kb/970459) نیز وجود داشت که با updateحل میشد.