1. مستندات
  2. سرور مجازی
  3. ویندوز
  4. پلسک
  5. رفع خطاهای 500، 503، 403 در IIS

رفع خطاهای 500، 503، 403 در IIS

Calendar

انتشار:

1404/09/17
Update Calendar

به روز رسانی:

1404/09/17

در این راهنما می‌خواهیم به طور دقیق بررسی کنیم وقتی روی VPS ویندوزی که پلسک روی آن نصب است با خطاهای 500 یا 503 یا 403 روبه‌رو می‌شوید، از کجا بررسی را شروع کنید و چطور مرحله‌به‌مرحله برای رفع مشکل پیش بروید.

مرحله اول: بررسی لاگ‌ها در پلسک

در پلسک برای هر سایت یک بخش لاگ وجود دارد که مهم‌ترین نقطه شروع برای عیب‌یابی خطاهای IIS است. در صفحه Domains دامنه موردنظر خود را پیدا کنید روی آن کلیک کنید و از صفحه باز شده روی Logs کلیک کنید.

Log

در این صفحه جریان لحظه‌ای لاگ‌های IIS را می‌بینید و با گزینه‌هایی مثل Refresh یا Start real-time updates می‌توانید پیام‌های جدید را دنبال کنید. همچنین از طریق Manage Log Files امکان مشاهده و دانلود فایل‌های لاگ مثل خطا و دسترسی را دارید.

اگر نیاز داشتید، می‌توانید لاگ‌های بیشتر را با گزینه Add filter به لیست اضافه کنید تا خطاهای خاصی مثل 500 یا 503 بهتر مشخص شوند.

Logs of iranservercommunity.fun

در صورت پیچیده بودن خطا، وارد مسیر Domains > نام دامنه > Failed Requests Tracing شوید و Rule مخصوص خطای موردنظر تعریف کنید تا یک فایل Trace دقیق برای هر بار وقوع خطا تولید شود.

Failed Requests Tracing on iranservercommunity.fun

مرحله دوم: شناخت خطاهای 500، 503 و 403

خطاهای IIS معمولا الگوی مشخصی دارند و دانستن معنای هر خطا به انتخاب مسیر درست عیب‌یابی کمک می‌کند.

خطای 500 Internal Server Error نشان می‌دهد در داخل برنامه یا ماژول‌های IIS مشکلی رخ داده است. این خطا کلی است و برای پیدا کردن دلیل باید پیام دقیق‌تر یا زیرکدهایی مثل 500.19 را در لاگ‌ها ببینید.

خطای 503 Service Unavailable معمولا یعنی Application Pool سایت در حالت Stop قرار دارد یا Worker Process نتوانسته اجرا شود. در نتیجه IIS موقتا سرویس‌دهی را متوقف می‌کند.

خطای 403 Forbidden نشان‌دهنده محدودیت دسترسی است. ممکن است فایل‌ها Permission صحیح نداشته باشند، Default Document تنظیم نشده باشد یا در IIS محدودیت IP و Authorization وجود داشته باشد.

رفع خطای 500 (Internal Server Error)

برای رفع خطای 500 قبل از هر چیز باید متن دقیق خطا را مشاهده کنید. در پلسک وارد IIS Settings دامنه شوید و اگر Custom Error Documents فعال است، آن را موقتاً خاموش کنید تا خطای واقعی IIS نمایش داده شود.

500

اگر سایت شما ASP.NET است فایل web.config را در File Manager باز کنید و مقادیر زیر را برای عیب‌یابی روی حالت نمایش خطای کامل قرار دهید:

<customErrors mode="Off" />
<deployment retail="false" />

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

web.config

در مرحله بعدی به Logs پلسک برگردید و زیرکدهای خطای 500 مثل 500.19 را بررسی کنید. خطای 500.19 به‌طور معمول به مشکل در ساختار web.config یا بخش‌هایی مانند <handlers> و <modules> برمی‌گردد. اگر ماژولی در web.config تعریف شده باشد ولی روی سرور نصب نباشد، خطا ظاهر می‌شود.

اگر کد برنامه باعث خطا باشد (Exception) باید Stack Trace در لاگ‌ها یا صفحه خطا بررسی شود و مشکل توسط توسعه‌دهنده اصلاح شود.

در خطاهای پیچیده، از مسیر Failed Requests Tracing یک Rule برای کد 500 تنظیم کنید تا فایل Trace دقیق مراحل پردازش درخواست را ثبت کند.

رفع خطای 503 (Service Unavailable)

در IIS خطای 503 تقریبا همیشه به Application Pool مربوط است. در پلسک وارد Domains شوید، دامنه را انتخاب کنید و وارد بخش IIS Application Pool شوید. اگر Pool روی حالت Stopped باشد آن را Start کنید.

نمای فهرست App Poolها

اگر Pool پس از چند ثانیه دوباره Stop شود باید از RDP وارد سرور شوید و Event Viewer را باز کنید. در مسیر Windows Logs سپس Application و System رویدادهای مربوط به WAS، W3SVC یا IIS-W3SVC-WP را بررسی کنید.

جزئیات یک Event

رایج‌ترین دلایل خطای 503 عبارت‌اند از:

  • رمز عبور اشتباه برای Identity Pool: اگر حساب کاربری Application Pool تغییر رمز داده باشد، IIS نمی‌تواند فرآیند را اجرا کند و Error Logon Failure ثبت می‌شود.
  • Crash شدن برنامه هنگام اجرا: اگر Worker Process بلافاصله پس از شروع اجرا Exception بدهد، IIS چند بار تلاش می‌کند و سپس Pool را Stop می‌کند.
  • کمبود RAM یا فضای دیسک: IIS برای اجرای Worker Process به فضای کافی نیاز دارد. کمبود منابع می‌تواند باعث توقف Pool شود.
  • تغییرات اخیر در ویندوز یا پلسک: ممکن است Permissionها تغییر کرده باشد و نیاز به اصلاح باشد.

رفع خطای 403 (Forbidden)

زمانی که کاربر اجازه دیدن مسیر یا فایل مشخصی را ندارد خطای 403 نمایش داده می‌شود.

رایج‌ترین حالت خطای 403.14 است. این خطا زمانی اتفاق می‌افتد که Default Document تعریف نشده باشد و Directory Browsing نیز فعال نباشد. برای رفع آن وارد IIS Settings شوید و در بخش Default Documents نام فایل صفحه اصلی سایت (index.html، index.php، default.aspx و…) را اضافه یا در صدر لیست قرار دهید. تنها در صورتی که واقعا نیاز دارید Directory Browsing را فعال کنید.

اگر Default Document صحیح بود، Permissionهای NTFS را در File Manager بررسی کنید. پوشه httpdocs باید برای گروه IIS_IUSRS یا کاربر Application Pool حداقل سطح Read داشته باشد.

در بخش IIS Settings دامنه بررسی کنید که در IP Address and Domain Restrictions یا Authorization Rules محدودیتی تعریف نشده باشد که دسترسی را برای همه کاربران مسدود کند.

403

چک‌لیست نهایی عیب‌یابی

برای صرفه‌جویی در زمان همیشه این ترتیب را دنبال کنید:

  • ابتدا وارد Logs پلسک شوید و پیام خطا را در لحظه وقوع بررسی کنید.
  • اگر خطا 500 است نمایش خطای دقیق را فعال کنید و زیرکدها را بررسی کنید.
  • اگر خطا 503 است وضعیت Application Pool و Event Viewer را بررسی کنید.
  • اگر خطا 403 است تنظیمات Default Document، Permissionها و محدودیت‌های IIS را چک کنید.
  • اگر خطا به کد برنامه مربوط است آن را همراه با لاگ دقیق به توسعه‌دهنده اعلام کنید.

با رعایت ترتیب بررسی لاگ‌ها، تنظیمات IIS، وضعیت Application Pool و سطح دسترسی فایل‌ها می‌توانید بیشتر خطاهای رایج IIS را سریع پیدا و برطرف کنید و مدیریت سایت‌ها در پلسک را با اطمینان بیشتری انجام دهید.

آیا توانستیم چالش شما را حل کنیم؟