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

ในระบบ Himpro Onlnie และ Himpro HRM มีฟังชั่น background service เพื่อทำงานบางอย่างอยู่เบื้องหลัง เช่น การส่งข้อความแจ้งเตือน, การส่งข้อมูล phr, การส่งข้อมูล moph refer โดยค่าเริ่มต้นของ IIS จะถูกตั้งค่าการทำงานให้อยู่ใน Mode On-Demand คือจะทำงานเมื่อมีการร้องขอเว็บไซว์เท่านั้น เพื่อประหยัดพลังงาน แต่การตั้งค่าแบบนี้จะส่งผลกระทบกับ background server ของ Himpro Online,Himpro HRM ทันที ปัญหานี้มีทางแก้ โดยทำการตั้งค่า IIS Web Server ใหม่ดังนี้
✅ สาเหตุหลัก:
- Application Pool Idle Timeout (ค่าปกติคือ 20 นาที)
- Application Pool Recycling
- 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