مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza373

عضویت از 1394/10/30

رفع خطای گزارش شده توسط elmah

  • یکشنبه 9 دی 1397
  • 18:56
تشکر میکنم

سلام خسته نباشید

من تازه elmah رو به پروژه اضافه کردم ، یکی دو تا خطا هست که خیلی آزاردهنده هست و نمیدونم به چه دلیل اتفاق میافته:

1- با وقوع هر گونه خطا ، خطای زیر نیز اتفاق میافته :

System.InvalidOperationException: The view 'Error' or its master was not found or no view engine supports the searched locations. The following locations were searched: ~/Views/Home/Error.aspx ~/Views/Home/Error.ascx ~/Views/Shared/Error.aspx ~/Views/Shared/Error.ascx ~/Views/Home/Error.cshtml ~/Views/Home/Error.vbhtml ~/Views/Shared/Error.cshtml ~/Views/Shared/Error.vbhtml

2- خطای زیر نیز هنگام لاگین به سایت اتفاق میافته البته نه همیشه ، بعضی مواقع ولی نمیدونم چرا و کی و چطوری باید رفعش کنم؟

System.Web.Mvc.HttpAntiForgeryException: The anti-forgery cookie token and form field token do not match.

در فرم لاگین از @Html.AntiForgeryToken  استفاده کردم و در سمت سرور بالای متد login( به صورت post) از [validateAntiForgeryToken] استفاده کردم.

لطفا راهنمایی کنید این خطا ها رو چطور رفع کنم ؟

خیلی ممنون

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 10 دی 1397
  • 09:45

خطای دوم به درستی صادر شده در وب سایت کوکی مربوط به anti-forgery و و فیلد ارسالی __RequestVerificationToken  باهم یکی نیستند به همین دلیل این خطا رخ داده و این میتونه چند دلیل داشته باشه یکی این که فرد دیگر خواسته از یک جای دیگه درخواست لاگین رو بفرسته، علت دوم هم اختلال ایجاد شده بین کوکی های localhost هستش اگر در local این خطا برای شما پیش میاد کوکی های مربوط به local هست را پاک کنید.

خطای اول هم برای خطا دوم است. زمانی که یک خطای  500 رخ می دهد ASP.NET MVC دنبال یک view به نام Error میگردد تا به کاربر به جای صفحه خطا یه صفحه مناسب نمایش دهد، در اینجا شما یک View به نام Error ندارید و وقتی ASP.NET MVC آن را پیدا نکنید یک Exception صادر می کند.

کاربر سایت

morteza373

عضویت از 1394/10/30

  • دوشنبه 10 دی 1397
  • 16:52

برای خطای اول هم من از custom error استفاده کردم و به درستی هم کار میکنه و وقتی خطایی رخ  میده به صفحه خطای سفارشی هدایت میشه ولی باز هم همچنان خطای مذکور در elmah ثبت میشه مبنی بر اینکه mvc نتونسته هیچ صفحه Error رو پیدا کنه ،

خطای دوم در لوکال نیست بلکه در هاست اصلی اتفاق میافته ، زمانی که کاربر لاگین میکنه و کمی بعد که زمان تنظیم شده برای sesstion در هاست تموم میشه و به طور خودکار کاربر logout میشه ، برای لاگین مجدد خطای anti-forgery رو میده ، آیا روش جایگزین برای anti-forgery وجود داره که از اون استفاده کنم تا ضمن حفظ امنیت سایت ، دیگه این خطا رو نده؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)