6 มิถุนายน 2025

การตั้งค่าให้ IIS Web Server ทำงานตลอด โดยไม่เข้า Mode Sleep

864024627108699312

ในระบบ Himpro Onlnie และ Himpro HRM มีฟังชั่น background service เพื่อทำงานบางอย่างอยู่เบื้องหลัง เช่น การส่งข้อความแจ้งเตือน, การส่งข้อมูล phr, การส่งข้อมูล moph refer โดยค่าเริ่มต้นของ IIS จะถูกตั้งค่าการทำงานให้อยู่ใน Mode On-Demand คือจะทำงานเมื่อมีการร้องขอเว็บไซว์เท่านั้น เพื่อประหยัดพลังงาน แต่การตั้งค่าแบบนี้จะส่งผลกระทบกับ background server ของ Himpro Online,Himpro HRM ทันที ปัญหานี้มีทางแก้ โดยทำการตั้งค่า IIS Web Server ใหม่ดังนี้

✅ สาเหตุหลัก:

  1. Application Pool Idle Timeout (ค่าปกติคือ 20 นาที)
  2. Application Pool Recycling
  3. IIS ทำงานแบบ On-Demand เพื่อประหยัดทรัพยากร

✅ วิธีแก้ปัญหา:

🛠 1. ปิด Idle Timeout

ให้ Application Pool ทำงานตลอดเวลาแม้ไม่มีผู้ใช้เข้าเว็บ

  • เปิด IIS Manager
  • ไปที่ Application Pools
  • คลิกขวา App Pool ที่ใช้ > Advanced Settings
  • หาค่า Idle Time-out (minutes) > เปลี่ยนจาก 20 เป็น 0 (หมายถึงไม่ Timeout)

💡 หมายเหตุ: ถ้าไม่ได้ใช้ VPS หรือ Server ส่วนตัว ระวังการใช้ทรัพยากรมากเกินไป


🛠 2. ปิดการ Recycling ที่ไม่จำเป็น

ใน Advanced Settings เช่นกัน:

  • ปิด Regular Time Interval (minutes) > เปลี่ยนจากค่าเช่น 1740 (29 ชม.) เป็น 0
  • หรือกำหนดให้ Recycling แบบ Manual เท่านั้น

🛠 3. เปิด “Always Running” + “Auto Start”

ใน IIS (สำหรับ ASP.NET Core Hosting Bundle รุ่นใหม่):

  • IIS > Application Pools > Advanced Settings
    • Start Mode = AlwaysRunning
  • IIS > Site > Manage Website > Advanced Settings
    • Preload Enabled = True