این خطا چیه لطفا:

m1pfard

Member
سلام،
پیرو مشکلات قبلی با ممبرشیپ در ASP.net به سفارش بزرگان (MDP) از خیر استفاده از اون با SQL2000 گذشتیم و بعد هزار سال تونستیم یه سرور با SQL2005 بیابیم. ولی الان هم موقع Login کردن این ارور رو میده:

PHP:
Server Error in '/' Application.
--------------------------------------------------------------------------------

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. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Web.HttpException: 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.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[HttpException (0x80004005): Unable to validate data.]
   System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) +294
   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +203

[ViewStateException: Invalid viewstate. 
	Client IP: 65.259.15.71
	Port: 47605
	User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)
	ViewState: /wEPDwUKMTczNDU2Mw9kFgJmD2QWBAIBD2QWAgIRDxYCHgRUZXh0BSDYtNmH2LHaqSDZgdmG2KfZiNix24wg2K7ZiNiv2LHZiGQCAw9kFg4CAQ9kFgJmDxYCHwAFbTx1bCBkaXI9InJ0bCIgc3R5bGU9InRleHQtYWxpZ246bGVmdDsiID48bGk+PGltZyBzcmM9ImltZy9BcnJvhtiq2KfZhiDZhtuM2qnd0xlZnQuZ2lmIiBhbHQ9IiIgLz7YtdmB2K3ZhyDYp9i12YTbjDwvbGk+PC91bD5kAgIPDxYCHwAFFdin2YXYp9mFINi12KfYr9mCKNi5KWRkAZbjCDYqtinINmB2LHYstmG2K/Yp9mG2KrYp9mGINio2Ycg2LTZhdinINmG24zaqduMINqp2YbZhtivLmRkAgQPZBYGAgEPZBYCZg9kFgICAQ8PFgYeBVdpZHRoGwAAAAAAAFlABwAAAB4GSGXyFTQgKAA2QWCAIBDzwrAA0BAA8WBB4LXyFEYXRhQm91bmRnWhkZAIBD2QWAmYPDHgtfIUl0ZW1Db3VudAIDZBYCZg9kFgpmDw8WAh4HVmlzaWJsZxYCHwAFLdmG2LjYsdiq2KfZhiDYr9ix2KjYp9ix2Ycg2LPYp9uM2Kog2obbjNiz2KrYn2RkAgIPDxYCHwZoZBYCZg8PFgIfAAUt2YbYuNix2KrYp9mGINiv2LHYqNin2LHZhyDYs9in24zYqiDahtuM2LPYqtifZGQCAw8PFgIfBmhkFgJmDw8WAh8ABS3Zhti42LHYqtin2YYg2K/Ysdio2KfYsdmHINiz2KfbjN...]

[HttpException (0x80004005): 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.]
   System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +267
   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +282
   System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) +4
   System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) +37
   System.Web.UI.HiddenFieldPageStatePersister.Load() +198
   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +83
   System.Web.UI.Page.LoadAllState() +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7350
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213
   System.Web.UI.Page.ProcessRequest() +86
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   ASP.login_aspx.ProcessRequest(HttpContext context) +4
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +358
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64

 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433


دیگه خسته شدم!!!!:cry:
چندتا سایت هم گفتن این کد تو web.config راه حل مشکله، ولی نشد که نشد:
PHP:
 <pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" />


Could you Please HELP me
 

MDP

Well-Known Member
مهدی جان این ارور برای اینه که ASP.Net نمی تونه Viewstate رو validate کنه!

هرچی داری رو پیج خاصیت viewstate رو فالس کن!
 

m1pfard

Member
ممنون ولی آخه اونجوری کلی مشکل برام پیش میاد. چون من خیلی از این ViewState ........ استفاده کردم!

مثلا این یکی از امکانات ASP.net هستش.
حالا هی بگید برو دنبال استفاده از تکنولوژی های نوین عرصه صنعت رایانه!
 
  • Like
Reactions: MDP

milade

Member
مهدی جان این ارور برای اینه که ASP.Net نمی تونه Viewstate رو validate کنه!

هرچی داری رو پیج خاصیت viewstate رو فالس کن!
سلام
البته دقیقا این نیست!
این خطا اینه که در سرور شما MAC دچار مشکله و هیچ کاری هم نمیشه کرد و فقط باید session ها و viewstate ها رو کد گزاری SHA1 کرد تا بشه کار کرد
البته این مشکل بیشتر هنگام استفاده از فیلدهای اعتبار سنجی پیش میاد
حالا فردا صبح لینک میدم ببینی(من در برنامه نویس فعالیت دارم الانم در دسترس نیست وگرنه میدادمت)
پیروز باشی و پایدار
 

milade

Member
سلام دوست عزیز
همون طور که گفتم این وقتی اتفاق میافته که شما در صفحه از session,cookie,view-state و یا کنترل امنیتی استفاده کنید
این رو برای درست شدنش بزارید داخل web.config :
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1"/>
یا این(بهتره!):
<machineKey validationKey="" decryptionKey="" validation="SHA1"/>
موفق باشید
 
آخرین ویرایش:

MDP

Well-Known Member
سلام
البته دقیقا این نیست!
این خطا اینه که در سرور شما MAC دچار مشکله و هیچ کاری هم نمیشه کرد و فقط باید session ها و viewstate ها رو کد گزاری SHA1 کرد تا بشه کار کرد
البته این مشکل بیشتر هنگام استفاده از فیلدهای اعتبار سنجی پیش میاد
حالا فردا صبح لینک میدم ببینی(من در برنامه نویس فعالیت دارم الانم در دسترس نیست وگرنه میدادمت)
پیروز باشی و پایدار

سلام میلاد خوبی آقا؟خوشحالم اینجا می بینمت.

سلام دوست عزیز
همون طور که گفتم این وقتی اتفاق میافته که شما در صفحه از session,cookie,view-state و یا کنترل امنیتی استفاده کنید
این رو برای درست شدنش بزارید داخل web.config :

یا این(بهتره!):

موفق باشید

این روش روشی درستیه ولی توی فروم ASP.Net آخرین دفعه ای که من به شکل خوردم و پرسیدم یکی از مدیر ها این طوری بهم جواب داد.

دات نت در تمام بخش های با تنضیمات دیفالت خودش بهترین سرعت و کارایی رو داره.
اگه سرعت برات مهمه همه ولیدیشن رو فالس کن ولی اگه برات مهم نسیت بایداز الگریتم های رمز گذاری دیگه ای استفاده کنی.
از قبل هم می دونیم که ASP.Net موقعیت فعلی صفحه و مقدار های کنترل رو به صورت خود کار قبل از پست بک شدن صفحه توی ViewState با الگریتم خاصی رمز گذاری و ذخیره می کنه.

دلیل این که شما وقتی از کنترل هایی مثل FreeTextBox یا Validation های خاص و یا غیره در فرمتون استفاده می کنید و همچید اررور هایی رو می بینید اینه که یا موتور ASP.Net نتونسته مقدار قبلی آنها رو ذخبره کنه ، یا چون مقدار اونها در بین اجرا تغییر کرده برنامه دچار مشکل شد.

پس بهتره یا از کنترل های استاندارد استفاده کنیم و یا الگریتم رمز گذاری رو عوض کنیم.

من ترجیح می دم که چیزی که کلیه و مربوط به همه صفحات میشه رو توی web.config تغییر ندم.دلیلش هم اینه که معمولا مشکلی پیش میاره.

البته توی 90% مواقع مشکلی پیش نمیاد ولی برای یه برنامه با هسته مطمعا باید همه چیز رو مد نظر گرفت
 

milade

Member
سلااااااااااام اقا مسعود !
بابا من اصلا فکر نمیکردم شما باشید .
گفتم شاید دیگه مجید انلاین نمیاید !

سلام میلاد خوبی آقا؟خوشحالم اینجا می بینمت.
خوبم استاد
برنامه نویس بالا نمیاومد گفتم بیام ببینم ملت چی میکنن
دوست دارم فعالیت کنم ولی اخه برا هر لود هر صفحه باید 30 ثانیه صبر کنم از بس تبلیغ داره !
از قبل هم می دونیم که ASP.Net موقعیت فعلی صفحه و مقدار های کنترل رو به صورت خود کار قبل از پست بک شدن صفحه توی ViewState با الگریتم خاصی رمز گذاری و ذخیره می کنه.

دلیل این که شما وقتی از کنترل هایی مثل FreeTextBox یا Validation های خاص و یا غیره در فرمتون استفاده می کنید و همچید اررور هایی رو می بینید اینه که یا موتور ASP.Net نتونسته مقدار قبلی آنها رو ذخبره کنه ، یا چون مقدار اونها در بین اجرا تغییر کرده برنامه دچار مشکل شد.

پس بهتره یا از کنترل های استاندارد استفاده کنیم و یا الگریتم رمز گذاری رو عوض کنیم.

من ترجیح می دم که چیزی که کلیه و مربوط به همه صفحات میشه رو توی web.config تغییر ندم.دلیلش هم اینه که معمولا مشکلی پیش میاره.

البته توی 90% مواقع مشکلی پیش نمیاد ولی برای یه برنامه با هسته مطمعا باید همه چیز رو مد نظر گرفت
البته من خیلی موافق نیستم هر چند شما درست میگید !
اخه مثلا شما فکر کنید ما در تمامی صفحات میخوایم یه یوزرکنترل یا نیم اسپیس اضافه کنیم اون وقت چه فاجعه ای پیش میاد
یا بدتر از همه اتصال به بانک!!!
اگه می بیام کد رو توی صفحات بزاریم و حالا بانک رو بخوایم تغییر نام بدیم مجبوریم کل صفحات رو برگردونیم !
+
در مورد خطای دوستمون فکر کنم(تا جایی که خودم) برمیگرده به مشکل سرور (فکر کنم MAC یه سخت افزاره)
حالا این کارش رو همون طور که گفتید درست انجام نمیده برا همین مجبوریم بازم همون طور که شما گفتید کد کنیم اطلاعات رو .
البته دقیقا این نیست!
در مورد این پستم باید بگم منظورم نبود شما اشتباه میگید بلکه منظورم این بود که همه حالات رو شامل نمیشه
در کل فکر کنم در web.config بزاره بهتر باشه چون راحت الحلقوم تره D:
البته شاید سرعت در هنگام کامپایل پایین بیاد ولی خوب صفحه هم کامپایل میشه ولی این طوری همیشه کامپایله
در کل اگه در تمام صفحات دارن و همچنین ممکنه در مورد کنترل امنیتی هم مشکل پیش بیاد پس همون کد بهتر هست
البته اگه فقط با viewstate مشکل دارن راه حل شما منطقی تره .
_____________________
پ.ن:به نظر مشا بیام اینجا فعالیت کنم؟
پیروز باشید و پایدار
 

MDP

Well-Known Member
چاکریم.

حرفت درسته میلاد.

MAC در سیستم سخت افزاری به واحدی از سخت افزار میگن که مسئولیت نام گذاری سیستم های شبکه رو بر عهده داره.(البته فکر کنم )

در ASP.Net و نرم افزاری نمی دونم به چی میگن.

باید بسرچم.

ولی بعد امتحانا الان وقتش نیست .

راستی برنامه نویس از صبح بالا میاد هاااا !؟
 

m1pfard

Member
ببخشید ببخشید.
من هم دقیقا به خاطر "به دلیل تموم شدن شارژ ADSL کم رنگ می شویم." کم رنگ شده بودم.
ولی حالا برگشتم!!!!!
با تشکر از دوستای گلم، عارضم به خدمتتون که من با اینکه در اطلاعات به هیچ کدوم از اساتید عزیز نمی رسم ولی با این نظریه موافقم که تغییر ندادن تنظیمات اولیه مایکروسافت به نفع هست!!!

به همین دلیل یه کار خیلی خیلی ساده تر کردم!
.
.
.
.
.
.
.
.
هاست رو تغییر دادم. حالا حل شده مشکل ما!!!
ولی یه سوال چرا DataBase Server ها برای SQL2005 اینفدر گرونن؟ شما ارزونش رو سراغ ندارین (پر سرعت، امن، پشتیبانی 724 و البته ارزون!)
 

milade

Member
ولی یه سوال چرا DataBase Server ها برای SQL2005 اینفدر گرونن؟ شما ارزونش رو سراغ ندارین (پر سرعت، امن، پشتیبانی 724 و البته ارزون!)
سلام دوست عزیز
علت گرون بودنش اینه که فشار روی سرور زیاده مخصوصا با session ی که SQL مصرف میکنه .
در مورد هاست هم www.green-apple.ir رو ببین (مال گروه ماست)
بانک اطلاعاتی نامحدوده !!!!!!!!
+
قیمتش هم خوبه + پشتیبانیش D:
البته هاستهای دیگم هست (میتونی تحقیق کنی)
اگه سایت رو دیدی به من خبر بده تا جورش کنم
پیروز باشی و پایدار
 

جدیدترین ارسال ها

بالا