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

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

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

یکشنبه, 09 دی 1397 18:56

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

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

من تازه 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] استفاده کردم.

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

خیلی ممنون

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

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

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

کسانی که از این پست تشکر کرده اند : morteza373,
دوشنبه, 10 دی 1397 16:52

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

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

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید