الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ يظهر باستمرار Validation Of Viewstate Mac Failed

بدأه GHOST2010 في 17 ديسمبر 2009 · 3 رد · 1,209 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

هذا الخطأ يظهر بطريقة عشوائية ومملة ولا أعرف له سببا وعندما بحثت وجدت أنه يمكن التخلص منه بإضافة الأسطر التالية إلى ملف web.config

enableViewStateMac="false"
viewStateEncryptionMode="Never"
enableEventValidation="false"

لكن طبعا كما هو واضح هذا الحل غير مقبول فهل عندكم حل آخر؟

رسالة الخطأ هى:

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.

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#2

هذه المشكلة آخذت حيزاً ضخما من النقاش في منتديات ASP.net ، و هذه هي الخلاصة :

هذا الخطاً يحدث في حالات معينة عندما يكون لديك GridView أو DetailView تحوي على خاصية DataKeyNames ، عندما تقوم بعملية PostBack ولم يتم تحميل كامل الصفحة بعد يظهر هذا الخطآ ، بسبب أن ASP.net تقوم بشتفير Events بواسطة مفتاح يتم وضعه داخل Hidden Field ..... بسسب أن تحميل الصفحة بطيء بسبب حجمها أو بسبب إنشغال السيرفر أو لسبب آخر ، لا يتم تحميل هذا Hidden Input إلى مستعرض المستخدم و بالتالي عندما يقوم بعملية Post Back فإن ASP.net ترفضه لظنها آنه Event سيئ لآنه لم يتم إرسال هذا Key ...

على كل حال الحلول :

1- كما أوردت في مشاركتك : إيقاف عملية Encryption بالتالي فتح الباب على مصراعيه لمشاكل الحماية .

2- إيقاف تفعيل Form في صفحتك لحين تحميلها بالشكل الكامل و عندها تعود لتمكينها من جديد (تضمن عدم قيام المستخدم بعملية Post Back قبل إنتهاء تحميل الصفحة ) .

3- إستبدال الحدث Render بحيث تضع هذا Hidden Field في بدايتها (يتم تحميله آولاً قبل البقية ) ..

لمعلومات آكثر راجع هذه الصفحة : Validation Excetpio

بالتوفيق

#3

هل لك أخي الكريم أن تظهر لي كيف لي أن أضيف هذه الأسطر في web.config

مشكور

هل لك أخي الكريم أن تظهر لي كيف لي أن أضيف هذه الأسطر في web.config

مشكور

#4

للرفع

مواضيع مشابهة