PDA

View Full Version : سوال: مشکل ارور جاوا اسکریپت در اعتبار سنجی



Slytherin
دوشنبه 06 دی 1389, 00:42 صبح
دوستان من در اعتبار سنجی چند تکست باکس معمولی به یک مشکل برخورد کرده ام و چون تازه با ASP.Net آشنا شدم ام توانی رفع این مشکل را به تنهایی ندارم، می خواستم اگر امکانش هست، مشکل این ارور را به من بگویید. (تصویر ارور را ضمیمه کردم)
اگر مشکل فقط از سیستم من هست، من کارم رو ادامه بدهم؟ در سیستم های دیگر این مشکل وجود نخواهد داشت؟
من واقعا هیچ کار خاص و پیچیده ای انجام ندادم! حتی 1 خط کد هم ننوشتم، واقعا نمی دونم مشکل چیه:ناراحت:
لطفا راهنمایی کنید...

Slytherin
دوشنبه 06 دی 1389, 10:41 صبح
کسی به من کمک نمی کند؟
فکر نمی کنم این ارور برای اساتید چیز سختی باشد،
من واقعا نمی دونم مشکل کجاست، از هر نوع اعتبار سنجی استفاده می کنم همین مشکل پیش می آید،
من حتی این اعتبار سنجی را در یک پروژه جدید و فقط با یک کنترل انجام دادم و باز همین مشکل رخ داد!
من فکر می کنم مشکل از ویژوال استدیو و یا سیستم عامل من باشد،
برای رفع این مشکل چه پیشنهادی دارید؟
آیا وقتی که کد را publishe کنم و یا اینکه در سیستم دیگری اجرا کنم، مشکلی نخواهد بود؟!

mehrdad201
دوشنبه 06 دی 1389, 12:10 عصر
به نظر میاد که اون ابجکت مورد نظر که خطا روش رخ میده ساخته نشده و در صفحه وجود نداره

مهدی کرامتی
دوشنبه 06 دی 1389, 12:30 عصر
شاید مشکل از عدم نصب صحیح ویژوال استودیو یا دات نت باشد.

ویژوال استودیو را Uninstall کرده و مجددا نصب کنید. اگر مشکل برطرف نشد یک پروژه ساده حاوی صفحه ای که خطا می دهد ایجاد کرده و اینجا ضمیمه کنید تا بررسی شود.

Slytherin
دوشنبه 06 دی 1389, 12:33 عصر
به نظر میاد که اون ابجکت مورد نظر که خطا روش رخ میده ساخته نشده و در صفحه وجود نداره

نه از این مطمئن هستم که مشکل از این نیست...


شاید مشکل از عدم نصب صحیح ویژوال استودیو یا دات نت باشد.

ویژوال استودیو را Uninstall کرده و مجددا نصب کنید. اگر مشکل برطرف نشد یک پروژه ساده حاوی صفحه ای که خطا می دهد ایجاد کرده و اینجا ضمیمه کنید تا بررسی شود.

ممنون، در حال Uninstall و نصب مجدد Microsoft Visual Studio 2010 هستم،
در صورتی که مشکل حل نشد همانطوری که خودتون گفتید نمونه ای ساده از کد را قرار می دهم...

Slytherin
دوشنبه 06 دی 1389, 13:16 عصر
همین الان مراحل بالا رو انجام دادم، متاسفانه مشکل بر طرف نگردید.:ناراحت:
نمونه ای ساده را ضمیمه کردم، لطفا بررسی کنید.

mehdi.mousavi
دوشنبه 06 دی 1389, 13:41 عصر
سلام.
من برنامه شما رو نگاه کردم و بدون هیچ مشکلی درست عمل کرد. به نظر من، مشکل در Serve کردن فایل WebResource.axd (روی دستگاه شما) هستش. در حقیقت این Handler هستش که کدهای JavaScript مورد نظر رو به Client بر میگردونه (که یکی از اونها، همین تابع WebForm_PostBackOptions هستش) و به دلیلی (فعلا نامشخص) معلوم نیست که چرا اون اینکارو روی ماشین شما بدرستی انجام نمیده. برای اطمینان از این مساله، برنامه رو در حالت غیر Debug اجرا کنید (کلید CTRL-F5) و سپس، بعد از Load شدن محتوای صفحه، Source صفحه رو نگاه کنید (منظورم همون HTML ای هستش که در مرورگر Load شده). یه جایی، بالای صفحه، باید همچین کدی ببینید:


<script src="/WebResource.axd?d=KsKyVYm1-0T3pgU6zQ7qZ0DxZFtn0XOK0eWQTbcNwFDB1a7tQhrn_R4U3Kq mQwbW9UpxNo3CoudR6wHJKaqthzGrm4U1&amp;t=63421374447343 7500" type="text/javascript"></script>اون URL رو، از جلوی src کپی کنید و در Address Bar به شکلی Paste کنید که بخش اول URL حفظ بشه. بطور مثال، اگر URL فوق رو در نظر بگیریم، توی Browser باید این آدرس رو بزنید:


(http://localhost:49374/WebResource.axd?d=KsKyVYm1-0T3pgU6zQ7qZ0DxZFtn0XOK0eWQTbcNwFDB1a7tQhrn_R4U3Kq mQwbW9UpxNo3CoudR6wHJKaqthzGrm4U1&amp;t=63421374447343 7500)http://localhost:49374/WebResource.axd?d=KsKyVYm1-0T3pgU6zQ7qZ0DxZFtn0XOK0eWQTbcNwFDB1a7tQhrn_R4U3Kq mQwbW9UpxNo3CoudR6wHJKaqthzGrm4U1&amp;t=63421374447343 7500 (http://localhost:49374/WebResource.axd?d=KsKyVYm1-0T3pgU6zQ7qZ0DxZFtn0XOK0eWQTbcNwFDB1a7tQhrn_R4U3Kq mQwbW9UpxNo3CoudR6wHJKaqthzGrm4U1&t=634213744473437500)

به اون بخش http://localhost:49374 دقت کنید، روی ماشین شما این پورت متفاوت خواهد بود...

احتمالا در این لحظه، با یه Error مواجه میشید (که حدس من اینه) که باید اون Error رو اینجا پست کنید تا به دلیل خطا پی ببریم. حدس میزنم چیزی روی ماشین شما باعث شده تا فایلهای AXD درست اجرا نشن (یا شاید Handler ای به اونها تخصیص داده نشده، یا Permission لازم برای اجرای اون وجود نداره و ...)

موفق باشید.

Slytherin
دوشنبه 06 دی 1389, 13:50 عصر
ممنون جناب موسوی، مراحل فوق را مو به مو انجام دادم و این متن ارور است:

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

The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /WebResource.axd


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.4952; ASP.NET Version:2.0.50727.4955

لطفا راهنمایی نمایید.

mehdi.mousavi
دوشنبه 06 دی 1389, 14:02 عصر
ممنون جناب موسوی، مراحل فوق را مو به مو انجام دادم و این متن ارور است: لطفا راهنمایی نمایید.

جسارتا می تونم خواهش کنم URL ای که در Address Bar زدید رو دقیقا اینجا قرار بدید تا مطمئن بشم موارد فوق رو بدرستی طی کرده اید؟ چون این ایراد 404 یه خرده اوضاع رو پیچیده میکنه (و اگر صحت داشته باشه، احتمالا به Versioning و ... ربط پیدا میکنه). در حقیقت میترسم شما URL مورد نظر رو دقیق نزده باشید، در نتیجه فایل مزبور پیدا نشده باشه، که اگر این باشه، باید مواردی که در فوق به اونها اشاره کردم رو از نو طی کنید. اما اگر مطمئن هستید که مواردی که در فوق به اونها اشاره کردم رو بدرستی انجام داده اید، و با اینحال، Error 404 رو میگیرید، اونوقت به این تاپیک (http://stackoverflow.com/questions/435311/asp-net-webresource-axd-call-404-error-how-to-know-which-assembly-resource-is-m) مراجعه کنید. اونجا مقاله ای معرفی مشه (http://blogs.telerik.com/hristodeshev/posts/07-03-26/debugging_asp_net_2_0_web_resources_decrypting_the _url_and_getting_the_resource_name.aspx)، که بهتون یاد میده چطور اطلاعات کد شده در اون URL رو بیرون بکشید. اون اطلاعات رو از URL مزبور استخراج کنید (به کمک روش توضیح داده شده) و اینجا قرار بدید. حدس بعدی من اینه که Assembly ی نادرستی داره آدرس میشه و اونه که این مشکل رو پیش آورده...

موفق باشید.

Slytherin
دوشنبه 06 دی 1389, 14:36 عصر
جناب موسوی عزیز این لینک کامل هست:

http://localhost:1186/WebResource.axd?d=bjvC7oEGdIg5gRx3EN3aR6zWd11N-3xbNaG06ruD5y0esRWiiCWWMLS_Jz7TN-eLD7o6JI_GNBSSxcTXbgl-lchVNXI1&amp;t=634208904757546466
من تازه دارم ASP.Net رو یاد می گیرم و متاسفانه چندان با اصطلاحاتی که گفتید آشنایی ندارم (اسمبلی نادرست؟ ارور 404؟ ورژنینگ؟)
من فکر نمی کنم اعتبار سنجی مبحث چندان پیچیده ای باشد.
حالا یک سوال دارم، اگه من برنامه رو به همین شکل پیش ببرم، با توجه به اینکه ارور فقط در سیستم من رخ می دهد، پروژه اصلی مشکلی نخواهد داشت؟
نکته دیگری که در کتاب راهنما من (جعفر نژاد قمی) وجود دارد، صحبت از کتابخانه ای به نام WebUIValidation.js هست،
من این فایل را در کنار پروژه ام نمی بینم، در کتاب گفته شده که اگر این فایل نباشد، اعتبار سنجی صورت نمی گیرد، ممکن است مشکل از این باشد؟
اگر مشکل از این هست، این فایل را از کجا باید تهیه کرد؟ در کجا باید قرار داد؟

Slytherin
دوشنبه 06 دی 1389, 14:46 عصر
آقای موسوی من به صفحه مقاله مذکور رفتم، متاسفانه نتونستم کامل کد ها رو درک کنم و URL رو استخراج کنم،
لطفا با توجه به پست قبلی من، اگر امکانش وجود دارد، شما زحمت استخراج URL را در صورت لزوم بکشید.
با تشکر قبلی

mehdi.mousavi
دوشنبه 06 دی 1389, 14:59 عصر
جناب موسوی عزیز این لینک کامل هست:

http://localhost:1186/WebResource.axd?d=bjvC7oEGdIg5gRx3EN3aR6zWd11N-3xbNaG06ruD5y0esRWiiCWWMLS_Jz7TN-eLD7o6JI_GNBSSxcTXbgl-lchVNXI1&amp;t=634208904757546466
من تازه دارم ASP.Net رو یاد می گیرم و متاسفانه چندان با اصطلاحاتی که گفتید آشنایی ندارم (اسمبلی نادرست؟ ارور 404؟ ورژنینگ؟) من فکر نمی کنم اعتبار سنجی مبحث چندان پیچیده ای باشد.

خیر، پیچیده نیست. :)


حالا یک سوال دارم، اگه من برنامه رو به همین شکل پیش ببرم، با توجه به اینکه ارور فقط در سیستم من رخ می دهد، پروژه اصلی مشکلی نخواهد داشت؟
حقیقتش تا ندونیم مشکل چیه، و به چه دلیلی رخ میده، نمیشه در موردش اظهار نظری کرد. بسیاری از سرویسهای ASP.NET توسط همین Handler ها ارائه میشه، در نتیجه ادامه این شرایط ممکنه در آینده ای دور یا نزدیک مشکلات متعدد دیگه ای براتون بوجود بیاره.


نکته دیگری که در کتاب راهنما من (جعفر نژاد قمی) وجود دارد، صحبت از کتابخانه ای به نام WebUIValidation.js هست، من این فایل را در کنار پروژه ام نمی بینم، در کتاب گفته شده که اگر این فایل نباشد، اعتبار سنجی صورت نمی گیرد، ممکن است مشکل از این باشد؟

این فایل و چند تای دیگه، در فایلی Assembly قرار گرفته اند، که توسط همین هندلر Expose میشن. الان که اینو گفتم، یه مطلب دیگه به ذهنم رسید که شاید مشکلتون رو رفع کنه. Command Prompt رو باز کنید، به شاخه C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 برید و دستور زیر رو وارد کرده، کلید Enter رو بزنید:


aspnet_regiis.exe -i

این دستور باعث میشه تا File Mapping ها مجددا از نو ساخته بشه (جدا از کارهای دیگه ای که میکنه). سپس یکبار دیگه برنامه رو اجرا کنید ببینید مشکلتون رفع شده یا خیر. در هر حال، توصیه میکنم قبل از ادامه دادن مطالعه کتاب، شرایط اجرایی خودتون رو به خوبی مهیا کنید تا با مسائل غیر منتظره دیگه ای روبرو نشید.

موفق باشید.

Slytherin
دوشنبه 06 دی 1389, 15:13 عصر
من در cmd با dir به مسیری که گفتید رفتم، اما بعد از اینکه دستور زیر را وارد کردم،

aspnet_regiis.exe -i
با پیغام:

'aspnet_regiis.exe' is not recognized as an internal or external command,
operable program or batch file.
مواجه شدم.
البته به صورت دستی به محل آدرس رفتم و روی فایل دابل کلیک کردم و بعد دوباره برنامه رو اجرا کردم و باز هم ارور داد (-i نمی دونم واسه چیه)

Slytherin
دوشنبه 06 دی 1389, 15:14 عصر
یه نکته الان به ذهنم رسید، در عکسی که در پست 1 گذاشتم تم ویندوزم شکل ویندوز های قبلی هست،
می خواستم بگم که ویندوز من 7 هست،
ویندوز 7 نکته خاصی ندارد؟

Slytherin
دوشنبه 06 دی 1389, 15:47 عصر
یک نسخه از چیزی که درست کردم رو در somee آپلود کردم،

http://movafagh.somee.com/Register.aspx
اینجا ظاهرا هیچ مشکلی ندارد.

پی نوشت: طراحی زشتش رو به بزرگی خودتون ببخشید، فعلا کار بلد نیستم، دارم یاد می گیرم...

mehrdad201
دوشنبه 06 دی 1389, 16:53 عصر
شما یک کاری کن
یه فایل WebResource.axd با ظرفیت 0 بایت بساز بنداز توی فولدر روت پروژت. بعد ببین باز هم این مشکل رو دارید ؟

Slytherin
دوشنبه 06 دی 1389, 16:59 عصر
شما یک کاری کن
یه فایل WebResource.axd با ظرفیت 0 بایت بساز بنداز توی فولدر روت پروژت. بعد ببین باز هم این مشکل رو دارید ؟

مشکل حل نشد.

mehrdad201
دوشنبه 06 دی 1389, 17:38 عصر
اگه روی اینترنت مشکل ندارید و فقط روی لوکال هاست به این مشکل برخورد میکنید مشکل یا در visual studio شماست یا در پیکره بندی پروژتون یا در بروزر

با بروزرهای مختلف تست کنید. فایرفاکس ، اکسپلورر ، کروم

Slytherin
دوشنبه 06 دی 1389, 17:49 عصر
اگه روی اینترنت مشکل ندارید و فقط روی لوکال هاست به این مشکل برخورد میکنید مشکل یا در visual studio شماست یا در پیکره بندی پروژتون یا در بروزر

با بروزرهای مختلف تست کنید. فایرفاکس ، اکسپلورر ، کروم

ابتدا یک تشکر ویژه از شما!
.
.
.
هیچ وقت فکر نمی کردم که به این زودی مثل سایر توسعه دهندگان وب کلاهم تو کلاه IE بره!
بله حق با شماست، مشکل فقط در IE هست! اون هم فقط در لوکال هاست!
خب حالا که مشخص شد مشکل از IE در لوکال هاست هست، کسی می تونه در مورد رفع این مشکل راهنمایی کنه؟ (البته دیگه از شدت مهم بودنش کاسته شده!)
پی نوشت: :-w !

mehrdad201
دوشنبه 06 دی 1389, 18:14 عصر
اول بررسی کنید ببینید IE شما ورژن چنده ؟

بعد بررسی کنید که اگه از سیستم try catch برای هندل کردن ارورها استفاده کنید اون فانکشنهای مربوطه کار میکنن یا نه (بعید میدونم کار کنن)

و اینکه سایت روی اینترنت رو هم با بروزر IE چک کنید و ببینید اونجا مشکل دارید. گاها پیش میاد IE روی لوکالهاست یا وب سرور خود VS قاطی میکنه. من این مشکل رو زیاد دیدم.

در ضمن IE به زودی ناک اوت میشه. (به نظر من) البته به عقیده خیلی از دوستان خیلی وقته ناک اوت شده. چون اصلا از استاندارد CSS3 پشتیبانی نمیکنه. حتی در ورژن 9 هم مشکلات اعصاب خورد کنی داره.

Slytherin
دوشنبه 06 دی 1389, 18:27 عصر
اول بررسی کنید ببینید IE شما ورژن چنده ؟

8




بعد بررسی کنید که اگه از سیستم try catch برای هندل کردن ارورها استفاده کنید اون فانکشنهای مربوطه کار میکنن یا نه (بعید میدونم کار کنن)

کلا متوجه منظورتون نشدم! (نخندید ها! :D)


و اینکه سایت روی اینترنت رو هم با بروزر IE چک کنید و ببینید اونجا مشکل دارید. گاها پیش میاد IE روی لوکالهاست یا وب سرور خود VS قاطی میکنه. من این مشکل رو زیاد دیدم.

روی اینترنت مشکلی ندارد.


در ضمن IE به زودی ناک اوت میشه. (به نظر من) البته به عقیده خیلی از دوستان خیلی وقته ناک اوت شده. چون اصلا از استاندارد CSS3 پشتیبانی نمیکنه. حتی در ورژن 9 هم مشکلات اعصاب خورد کنی داره.

موافقم.


در هر صورت اگر کسی متوجه این مشکل شد، همینجا همه رو مطلع کند،
با تشکر از زحمات همگی

Slytherin
دوشنبه 06 دی 1389, 18:43 عصر
راستی این اعتبار سنجی در لوکال هاست یک مشکل دیگر هم دارد،
زمانی که بر روی دکمه کلیک می کنم ابتدا postback صورت می گیرد و بعد از اون اعتبار سنجی می شود!
به این شکل که مثلا اول اطلاعات در دیتابیس ثبت می شوند!!!
البته این مشکل در هاست واقعی وجود ندارد اما می خواستم دلیلش رو بدونم؟!

پی نوشت: اینبار با مرورگر های دیگر هم تست کردم، همه همین مشکل را دارند. ایراد کجاست؟

mehrdad201
دوشنبه 06 دی 1389, 19:09 عصر
اگه در مرورگرهای دیگه هم به منشکل میخورید پس مشکل در کد نویسی شماست. لطفا کدهاتون رو بررسی کنید. در اعتبار سنجی برای فیلدهای متعلق به یک گروه از خاصیت validation group استفاده کنید.

Slytherin
دوشنبه 06 دی 1389, 19:19 عصر
اگه در مرورگرهای دیگه هم به منشکل میخورید پس مشکل در کد نویسی شماست. لطفا کدهاتون رو بررسی کنید. در اعتبار سنجی برای فیلدهای متعلق به یک گروه از خاصیت validation group استفاده کنید.
اون مشکل اولیه نه، ولی مشکل پستبک در همه مرورگر ها هست،
البته در هاست واقعی مشکلی نیست...

mehdi.mousavi
دوشنبه 06 دی 1389, 23:23 عصر
یه نکته الان به ذهنم رسید، در عکسی که در پست 1 گذاشتم تم ویندوزم شکل ویندوز های قبلی هست، می خواستم بگم که ویندوز من 7 هست، ویندوز 7 نکته خاصی ندارد؟

سلام.
واقعیتش الان حضور ذهن ندارم اما Windows 7 بصورت پیش فرض IP6 رو فعال کرده و یادمه این مساله مشکلاتی رو برامون (تو ویندوز ویستا) زمانی بوجود آورده بود. اما اینکه چی بود، دقیق خاطرم نیست. توی Command Prompt شما ping localhost رو بزنید و ببینید در پاسخ ::1 رو می گیرید یا 127.0.0.1.... اولی نشون میده IP6 فعاله و دومی IP4 ... اگر ::1 رو گرفتید، توی گوگل جستجو کنید تا در این مورد اطلاعات بیشتری بدست بیارید.

در مورد Postback شدن هم حقیقتا ایده ای ندارم. چون برنامه ای که ارسال کردید بدون مشکل روی سیستم من کار میکنه. در واقع سمت Client بدرستی Validation انجام میشه و سپس اطلاعات به سمت سرور ارسال میشه. قبلا هم بهتون گفتم، تا مشکل اصلی رو رفع نکرده اید، ادامه ندید چون اینطوری با مسائل پیچیده تری روبرو میشید که مطلقا نیازی به مواجهه با اونها نیست.

موفق باشید.

پاورقی: حقیقتش متوجه نشدم، اگر فایل aspnet_regiis.exe اونجا هست (C:\Windows\Microsoft.NET\Framework\v2.0.50727) دیگه اون پیامی که میگیرید چیه. اگر نیست، چطور اونجا نیستش؟ مگه VS2010 (و در نتیجه .NET FX نصب نشده؟؟؟)

Slytherin
دوشنبه 06 دی 1389, 23:50 عصر
ممنون جناب موسوی،
ping localhost را وارد کردم و عدد 1 را دریافت کردم، ولی متوجه نشدم که موضوع چیه!
مشکلی که در ابتدا مطرح کردم، با بروزر های دیگه در لوکال هاست، و با تمامی بروزر ها در اینترنت وجود ندارد،
فقط مشکل زمانی رخ می دهد که با اینترنت اکسپلورر بخواهیم در لوکال هاست، آبجکتی رو اعتبار سنجی کنیم...
مورد پست بک هم فقط در لوکال هاست رخ می دهد!
در مورد پاورقی هم باید بگم که من هم دقیقا مثل شما گیج شده ام! بله فایل وجود دارد اما آن ارور داده می شود!!!
با این حال باز هم ممنون که این مسئله رو پیگیری می کنید.
من چه در برنامه نویسی ویندوز، و چه در برنامه نویسی وب، با مشکلات فراوانی در وبندوز هفت مواجه بوده ام،
به نظر شما برای یک برنامه نویس، بروز بودن مهم تر هست یا کیفیت و یا هر دو؟
منظورم اینه که چطوره مثلا ویندوز XP بریزم، با یه VS2008 تا همه چیز بر طرف شود!
من همیشه دوست داشته ام که بروز باشم، اما ظاهرا ماکروسافت نمی گذارد...

behnaz122
سه شنبه 29 مرداد 1398, 16:41 عصر
سلام خسته نباشید من برنامه هایی که می نویسم در ویژوال استودیو 2015 اجرا میشه ولی وقتی که validation ها را به فرم اضافه می کنم در مرورگر خطا میده و میگه که jquery اضافه کنید نمیدونم ممنون میشم راهنمایی کنید؟:ناراحت: