ผู้ใช้ประสบกับข้อความข้อผิดพลาด 1053 ซึ่งระบุว่า 'บริการไม่ตอบสนองต่อคำขอเริ่มหรือควบคุมในเวลาที่กำหนด' ข้อความข้อผิดพลาดนี้เกิดจากการหมดเวลาที่เกิดขึ้นหลังจากมีคำขอเริ่มบริการ แต่บริการไม่ตอบสนองในช่วงเวลาที่กำหนด
มีรูปแบบต่างๆ ของข้อความข้อผิดพลาดนี้ ตั้งแต่ปัญหาในบริการ Windows ไปจนถึงบริการที่กำหนดเองไม่สามารถเปิดใช้งานได้ (รวมถึงเกมและซอฟต์แวร์ของบุคคลที่สามอื่นๆ) เรายังพบกรณีที่นักพัฒนาพบปัญหานี้ขณะพัฒนาซอฟต์แวร์ที่กำหนดเอง ในบทความนี้ เราจะผ่านทุกรูปแบบของข้อความข้อผิดพลาดและอภิปรายว่าสามารถทำอะไรเพื่อแก้ปัญหาได้อย่างสมบูรณ์
สาเหตุของข้อผิดพลาด 1053 ใน Windows
หลังจากได้รับรายงานเบื้องต้นจากผู้ใช้ เราเริ่มสืบสวนและสำรวจลึกโมดูลทั้งหมดที่เกี่ยวข้องกับกลไกการเริ่มบริการ หลังจากรวบรวมผลลัพธ์ทั้งหมดและซิงค์กับการตอบสนองของผู้ใช้ เราสรุปได้ว่าปัญหาเกิดจากหลายเหตุผลที่แตกต่างกัน บางอย่างระบุไว้ด้านล่าง:
- การตั้งค่าเวลาหมดเวลา (Timeout settings): Windows โดยค่าเริ่มต้นมีการตั้งค่าเวลาหมดเวลา ซึ่งหากแอปพลิเคชันไม่ทำให้สำเร็จ จะบังคับให้ยุติและปิด หากบริการที่คุณพยายามเปิดใช้งานใช้เวลานานเกินไปในการตอบสนอง มันจะถูกฆ่า ที่นี่ เราสามารถเปลี่ยนการตั้งค่าเวลาหมดเวลาโดยการจัดการรีจิสทรี
- ไฟล์ DLL หายไป (Missing DLL file): อีกกรณีหนึ่งของข้อผิดพลาดเกิดเมื่อคุณมีไฟล์ DLL หายไปบนคอมพิวเตอร์ซึ่งถูกใช้โดยแอปพลิเคชันอื่นๆ หลายตัว หากไฟล์ DLL นี้ขัดแย้งหรือไม่มีอยู่จริง คุณจะประสบข้อความข้อผิดพลาด
- ไฟล์ระบบเสียหาย/หายไป (Corrupt/missing system files): อีกเหตุผลหนึ่งที่ทำให้เกิดปัญหานี้คือมีไฟล์ระบบเสียหายหรือหายไปบนคอมพิวเตอร์ หากการติดตั้ง Windows ตัวเองไม่ถูกต้องและมีปัญหา คุณจะประสบปัญหาหลายอย่างรวมถึงข้อความข้อผิดพลาดที่กำลังอภิปราย
- Windows ล้าสมัย (Outdated Windows): Microsoft ยอมรับข้อความข้อผิดพลาดนี้บนเว็บไซต์อย่างเป็นทางการและเคยปล่อย hotfix ชั่วคราวเพื่อแก้ปัญหา แต่ 近期 พวกเขาเอา hotfix ออกและแนะนำให้ผู้ใช้อัปเกรดเป็นรุ่นล่าสุดของ Windows
- ใช้ Debug build (สำหรับนักพัฒนา): หากคุณพยายามเปิดใช้งานบริการใน Debug build ของ Windows คุณอาจประสบข้อความข้อผิดพลาดนี้ Debug build ไม่เสถียรและไม่มีฟังก์ชันทั้งหมดทำงานเหมือน Release build
- กรอบงานหายไป (สำหรับนักพัฒนา): ความไม่เข้ากันได้ของกรอบงาน (Frameworks) ก็เป็นหนึ่งในสาเหตุของข้อความข้อผิดพลาด กล่องที่คุณพยายามรันบริการและบริการของคุณเองต้องอยู่บนกรอบงานเดียวกัน
- ปัญหาในบริการฐานข้อมูล (สำหรับนักพัฒนา): อีกกรณีที่คุณอาจประสบข้อผิดพลาดนี้คือมีปัญหากับการกำหนดค่าโครงการ รายละเอียดเซิร์ฟเวอร์ควรถูกต้องเพื่อให้บริการไม่มีปัญหาในการเข้าถึง
- การติดตั้งเสียหาย (Corrupt installation): อีกกรณีทั่วไปที่คุณอาจประสบข้อผิดพลาดนี้คือการติดตั้งแอปพลิเคชันของคุณ (ซึ่งเรียกบริการ) เสียหายบางส่วน การติดตั้งใหม่ช่วยได้ที่นี่
- การกำหนดค่าเครือข่ายไม่ดี (Bad network configurations): บริการสื่อสารกับเครือข่ายของคุณตลอดเวลา หากการกำหนดค่าเครือข่ายของคุณไม่ดี บริการอาจไม่สามารถทำภารกิจได้และก่อให้เกิดข้อความข้อผิดพลาด
- สิทธิ์ผู้ดูแลระบบ (Administrator access): บริการที่คุณพยายามเปิดใช้งาน (หรือบุคคลที่สามพยายามเปิดใช้งาน) ควรเปิดใช้งานเป็นผู้ดูแลระบบหากมันใช้ทรัพยากรระบบที่ไม่ได้ตั้งใจสำหรับการใช้งานทั่วไป
ก่อนที่เราจะไปต่อกับวิธีแก้ไข โปรดตรวจสอบให้แน่ใจว่าคุณล็อกอินเป็นผู้ดูแลระบบบนคอมพิวเตอร์และมีการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานอยู่ นอกจากนี้ โปรดทำตามวิธีแก้ไขจากจุดเริ่มต้นและทำงานลงมาตามลำดับ
ซ่อมแซมไฟล์ที่เสียหาย
ดาวน์โหลดและรัน Restoro เพื่อสแกนและกู้คืนไฟล์ที่เสียหายและหายไปจาก ที่นี่ หลังจากเสร็จสิ้น ให้ดำเนินการต่อกับวิธีแก้ไขด้านล่าง
วิธีแก้ไขที่ 1: เปลี่ยนการตั้งค่าเวลาหมดเวลาผ่าน Registry
สิ่งแรกที่ควรลองคือการเปลี่ยนการตั้งค่าเวลาหมดเวลาของบริการของคุณผ่าน Registry Editor ทุกครั้งที่มีคำขอให้บริการเริ่มต้น ไทเมอร์จะเริ่มต้นด้วยค่าที่กำหนดไว้ล่วงหน้า หากบริการไม่เริ่มต้นภายในกรอบเวลานี้ ข้อความข้อผิดพลาดจะแจ้งเตือน ในวิธีแก้ไขนี้ เราจะนำทางไปยังรีจิสทรีของคอมพิวเตอร์และเปลี่ยนค่า หากไม่มีอยู่ เราจะสร้างคีย์ใหม่สำหรับมัน
- กด Windows + R พิมพ์ "regedit" ในกล่องโต้ตอบและกด Enter
- ใน Registry Editor ให้ไปที่เส้นทางไฟล์ต่อไปนี้:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
- ค้นหาคีย์ 'ServicesPipeTimeout' หากพบอยู่แล้ว คุณสามารถไปแก้ไขได้เลย แต่หากไม่พบรายการ ให้เลือก Control คลิกขวาที่พื้นที่ว่างด้านขวาของหน้าจอและเลือก New > DWORD

- ตั้งชื่อคีย์ว่า 'ServicesPipeTimeout' และตั้งค่าเป็น 180000 (คุณสามารถคลิกขวาที่ค่าและคลิก Modify หากตัวเลือกตั้งค่าไม่ปรากฏในกรณีของคุณ

- บันทึกการเปลี่ยนแปลงและออกจากโปรแกรม รีสตาร์ท คอมพิวเตอร์อย่างสมบูรณ์ จากนั้นลองเปิดใช้งานบริการ ตรวจสอบว่าปัญหาแก้ไขแล้วหรือไม่
วิธีแก้ไขที่ 2: ตรวจสอบการเสียหายของไฟล์ระบบ
อีกสิ่งที่ควรลองก่อนที่จะไปวิธีที่ซับซ้อนและขั้นสูงกว่านี้คือตรวจสอบว่าระบบมีการเสียหายหรือไม่ หาก Windows ของคุณขาดไฟล์และเสียหายเป็นอย่างใดเป็นหนึ่ง อาจทำให้โมดูลสำคัญบางอย่างทำงานไม่ได้ ผลคือคุณจะประสบข้อความข้อผิดพลาด 1053 ในวิธีแก้ไขนี้ เราจะใช้ System File Checker ของ Windows ซึ่งตรวจสอบโครงสร้างไฟล์ระบบทั้งหมดและเปรียบเทียบกับโครงสร้างของสำเนาใหม่ที่มีอยู่ออนไลน์ หากมีความแตกต่าง ไฟล์จะถูกแทนที่ตามลำดับ
- กด Windows + S พิมพ์ "command prompt" ในกล่องโต้ตอบ คลิกขวาที่แอปพลิเคชันและเลือก Run as administrator
- ใน Command Prompt ที่มีสิทธิ์ผู้ดูแลระบบ ให้執行คำสั่งต่อไปนี้ทีละคำสั่งและให้แน่ใจว่าทำเสร็จสิ้น:
sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth
- คำสั่งหลังจะแก้ไขปัญหาใดๆ ที่ System File Checker ตรวจพบขณะรันการสแกน รีสตาร์ท คอมพิวเตอร์อย่างสมบูรณ์หลังจากรันคำสั่งและตรวจสอบว่าปัญหาแก้ไขแล้วหรือไม่
วิธีแก้ไขที่ 3: ติดตั้งแอปพลิเคชันใหม่ (หากเกี่ยวข้อง)
อีกวิธีที่มีประโยชน์ในการกำจัดข้อความข้อผิดพลาด 1053 คือการติดตั้งแอปพลิเคชันใหม่ซึ่งเป็นตัวขอบริการ ปกติ แอปพลิเคชันของบุคคลที่สามที่ติดตั้งจากแหล่งภายนอก (ยกเว้น Microsoft Store) อาจมีส่วนประกอบที่หายไปหรือล้าสมัยที่ขอบริการบางอย่างใน Windows
ที่นี่ สิ่งที่คุณสามารถทำได้คือไปที่เว็บไซต์อย่างเป็นทางการและดาวน์โหลดรุ่นใหม่ของแอปพลิเคชัน หลังจากถอนการติดตั้งรุ่นปัจจุบัน คุณสามารถติดตั้งได้ วิธีการถอนการติดตั้งแอปพลิเคชันใน Windows ดังนี้
- กด Windows + R พิมพ์ "appwiz.cpl" ในกล่องโต้ตอบและกด Enter
- ในตัวจัดการแอปพลิเคชัน ให้ค้นหาแอปพลิเคชัน คลิกขวาที่มันและเลือก Uninstall

- รีสตาร์ทคอมพิวเตอร์ของคุณ จากนั้นดำเนินการติดตั้งใหม่
วิธีแก้ไขที่ 4: รีเซ็ตแคชและการกำหนดค่าเครือข่าย
หากคุณใช้บริการที่เชื่อมต่อกับอินเทอร์เน็ตและทำงานบางอย่างที่นั่น แนะนำให้ตรวจสอบว่าทุก socket และการกำหนดค่าเครือข่ายอื่นๆ สมบูรณ์และไม่ก่อให้เกิดปัญหา หากเป็นเช่นนั้น บริการของคุณอาจไม่สามารถเชื่อมต่ออินเทอร์เน็ตเพื่อดำเนินภารกิจและก่อให้เกิดความยากลำบาก
ในวิธีแก้ไขนี้ เราจะนำทางไปที่ Command Prompt เป็นผู้ดูแลระบบและรีเซ็ตการกำหนดค่าเครือข่ายจากที่นั่น หากสำเร็จ ข้อความข้อผิดพลาดจะถูกกำจัด
หมายเหตุ: สิ่งนี้จะล้างการตั้งค่าที่กำหนดเองทั้งหมดที่คุณตั้งค่าเอง
- กด Windows + R พิมพ์ "command prompt" ในกล่องโต้ตอบ คลิกขวาที่แอปพลิเคชันและเลือก "Run as administrator"
- ใน Command Prompt ที่มีสิทธิ์ผู้ดูแลระบบ ให้執行คำสั่งต่อไปนี้ทีละคำสั่ง:
netsh winsock reset ipconfig /renew
- หลังจากรีเซ็ตเครือข่ายของคุณ ให้แน่ใจว่าคุณมีการเข้าถึงอินเทอร์เน็ตโดยตรวจสอบผ่านเบราว์เซอร์และดูว่าปัญหาแก้ไขแล้วหรือไม่
วิธีแก้ไขที่ 5: รับสิทธิ์เป็นเจ้าของแอปพลิเคชัน
กรณีหายากอีกกรณีที่เราพบคือการไม่มีสิทธิ์เป็นเจ้าของแอปพลิเคชันทำให้แอปพลิเคชันไม่สามารถ執行บริการได้อย่างถูกต้อง นี่เป็นเรื่องที่เข้าใจได้ เพราะหากแอปพลิเคชันไม่มีการเข้าถึงที่เพิ่มขึ้นเพียงพอ มันจะไม่สามารถส่ง/อ่านการตอบสนองไป/จากบริการได้ (โดยเฉพาะหากเป็นบริการระบบ) ในบทความนี้ เราจะนำทางไปยังไฟล์執行ของแอปพลิเคชันและเปลี่ยนเจ้าของเป็นชื่อผู้ใช้ของเรา หากสำเร็จ จะแก้ปัญหาการได้รับข้อผิดพลาด 1053
- ค้นหาไฟล์/โฟลเดอร์ของแอปพลิเคชัน คลิกขวาและเลือก Properties
- ไปที่แท็บ "Security" และคลิกที่ "Advanced" ที่อยู่ใกล้ด้านล่างของหน้าจอตามที่คุณเห็นในภาพด้านล่าง

- คลิกที่ปุ่ม "Change" ที่มีอยู่ในหน้าจอถัดไป จะอยู่ตรงหน้าค่าของเจ้าของ ที่นี่เราจะเปลี่ยนเจ้าของโฟลเดอร์นี้จากค่าเริ่มต้นเป็นบัญชีคอมพิวเตอร์ของคุณ

- พิมพ์ชื่อบัญชีผู้ใช้ของคุณในช่องที่มีอยู่และคลิก "Check Names" Windows จะแสดงรายการบัญชีทั้งหมดที่ตรงกับชื่อนี้โดยอัตโนมัติ

หากคุณไม่หาชื่อบัญชีของคุณด้วยวิธีนี้ คุณสามารถลองเลือกด้วยตนเองจากรายการกลุ่มผู้ใช้ที่มีอยู่ คลิก "Advanced" และเมื่อหน้าต่างใหม่ปรากฏ คลิก "Find Now" รายการจะแสดงที่ด้านล่างของหน้าจอประกอบด้วยกลุ่มผู้ใช้ทั้งหมดบนคอมพิวเตอร์ของคุณ เลือกบัญชีของคุณและกด "OK" เมื่อกลับมาที่หน้าต่างเล็ก กด "OK" อีกครั้ง
- ตอนนี้ ติ๊กถูก บรรทัด "Replace owner on sub containers and objects" สิ่งนี้จะทำให้โฟลเดอร์/ไฟล์ทั้งหมดภายในโฟลเดอร์เปลี่ยนเจ้าของด้วย วิธีนี้คุณจะไม่ต้องดำเนินการซ้ำๆ สำหรับไดเรกทอรีย่อยที่มีอยู่ นอกจากนี้ เรายังแนะนำให้เปิดใช้งานตัวเลือก "Replace all child object permission entries with inheritable permission entries from this object"
- ปิดหน้าต่าง Properties หลังจากคลิก "Apply" และเปิดมันอีกครั้งหลังจากนั้น ไปที่แท็บ security และคลิก "Advanced"
- ในหน้าต่างสิทธิ์ คลิกที่ "Add" ที่อยู่ใกล้ด้านล่างของหน้าจอ

- คลิกที่ "Select principle" หน้าต่างที่คล้ายกันจะปรากฏเหมือนในขั้นตอนที่ 4 ทำซ้ำขั้นตอนที่ 4 เมื่อมันปรากฏ ตอนนี้ติ๊กถูกสิทธิ์ทั้งหมด (ให้การควบคุมเต็มที่) และกด "OK"
- ติ๊กถูกบรรทัด "Replace all child object permission entries with inheritable permission entries from this object" และกด Apply
- ปิดไฟล์และ รีสตาร์ท คอมพิวเตอร์อย่างสมบูรณ์ ตอนนี้ ลองเปิดใช้งานแอปพลิเคชันและตรวจสอบว่าปัญหาแก้ไขแล้วหรือไม่
วิธีแก้ไขที่ 6: อัปเดต Windows เป็นรุ่นล่าสุด
อีกสิ่งที่ควรลองคือตรวจสอบว่าคุณติดตั้งรุ่น Windows ที่อัปเดตแล้วหรือไม่ Microsoft ปล่อยอัปเดตเพื่อเป้าหมายการเปลี่ยนแปลงใหม่ใน OS และรองรับคุณสมบัติเพิ่มเติม อัปเดตบางอย่างเป็นลักษณะ 'critical' และต้องติดตั้งโดยเร็วที่สุด หากอัปเดต 'critical' ใดๆ ไม่ได้ติดตั้ง คุณจะประสบปัญหา
- กด Windows + S เพื่อเปิดแถบค้นหา เขียน Update ในกล่องโต้ตอบและเปิดการตั้งค่าอัปเดต

- ในการตั้งค่าอัปเดต คลิกที่ Check for updates คอมพิวเตอร์จะเชื่อมต่อกับเซิร์ฟเวอร์ Microsoft และดูว่ามีอัปเดตให้หรือไม่ หากมีอัปเดตที่ไฮไลท์อยู่แล้ว ให้ดำเนินการทันที
เพิ่มเติม: เคล็ดลับสำหรับนักพัฒนา
หากคุณเป็นนักพัฒนาและพยายามเปิดใช้งานบริการใน Windows มีรายละเอียดทางเทคนิคหลายร้อยอย่างที่คุณควรทำอย่างถูกต้องเพื่อสร้างและได้รับการตอบสนองจากบริการ ที่นี่ในวิธีแก้ไขเพิ่มเติม เราจะระบุสาเหตุยอดนิยมบางอย่างของข้อผิดพลาด 1053 ในโลกนักพัฒนาและวิธีแก้ไข
- ให้แน่ใจว่า .NET Frameworks ซิงค์กัน: หากแอปพลิเคชัน/บริการที่คุณพยายามเปิดใช้งานอยู่บนกรอบงานอื่นที่แตกต่างจากเครื่องโฮสต์ คุณจะประสบปัญหา ตรวจสอบให้แน่ใจว่ากรอบงานซิงค์กัน
- ใช้ Release Build: นักพัฒนามักมีแนวโน้มที่จะใช้ Debug build เพื่อทดสอบบริการต่างๆ และการดำเนินงานของมัน อย่างไรก็ตาม สังเกตเห็นว่าการไม่รันบริการใน Release build ทำให้เกิดปหลายปัญหา
- เพื่อดีบักการเริ่มต้นของบริการของคุณ (เพื่อข้อมูลเชิงลึกมากขึ้น) ให้แทรกโค้ดที่ระบุด้านล่างไว้ด้านบนของเมธอด OnStart() ของบริการของคุณ:
while(!System.Diagnostics.Debugger.IsAttached) Thread.Sleep(100);
สิ่งนี้จะทำให้บริการหยุดนิ่งชั่วคราวเพื่อให้คุณสามารถแนบ Visual Studio debugger ได้อย่างรวดเร็วผ่าน Debug > Attach
- คัดลอก release DLL หรือรับไฟล์ DLL จาก release mode แทน Debug mode และวางไว้ในโฟลเดอร์ติดตั้ง สิ่งนี้จะแก้ปัญหาหากเกี่ยวข้องกับไฟล์ DLL
- ให้แน่ใจว่า ฐานข้อมูล ที่บริการ/แอปพลิเคชันของคุณเข้าถึงถูกกำหนดค่าอย่างถูกต้อง หากมีปัญหากับฐานข้อมูลตัวเอง (หรือข้อมูลประจำตัวอื่นๆ) คุณจะประสบข้อความข้อผิดพลาด แนวทางปฏิบัติที่ดีคือตรวจสอบโมดูลทั้งหมดอีกครั้งและให้แน่ใจว่าพารามิเตอร์และตัวแปรทั้งหมดตั้งค่าอย่างถูกต้อง