คุณมีแอปพลิเคชันเซิร์ฟเวอร์ COM+ ที่ตั้งค่าให้รันภายใต้ผู้ใช้เฉพาะ หลังจากทำงานไปสักพัก แอปพลิเคชันอาจหยุดทำงานและล้มเหลวซ้ำๆ คุณต้องรีสตาร์ทแอปพลิเคชัน COM+ เพื่อแก้ไขปัญหา ในบทความนี้ เราจะระบุสาเหตุและเสนอวิธีแก้ไขปัญหา แอปพลิเคชัน COM+ หยุดทำงาน ใน Windows 10 เมื่อผู้ใช้ล็อกออฟ
แอปพลิเคชัน COM+ เป็นหน่วยหลักในการจัดการและความปลอดภัยสำหรับ Component Services ประกอบด้วยกลุ่มคอมโพเนนต์ COM ที่ทำหน้าที่เกี่ยวข้องกันทั่วไป
การสร้างกลุ่มตรรกะของคอมโพเนนต์ COM เป็นแอปพลิเคชัน COM+ ช่วยให้คุณได้รับประโยชน์ดังต่อไปนี้:
- ขอบเขตการปรับใช้สำหรับคอมโพเนนต์ COM
- ขอบเขตการกำหนดค่าร่วมกัน รวมถึงขอบเขตความปลอดภัยและคิว
- การจัดเก็บแอตทริบิวต์คอมโพเนนต์ที่นักพัฒนาไม่ได้จัดเตรียม (เช่น ธุรกรรมและการซิงโครไนซ์)
- การโหลดไลบรารีลิงก์ไดนามิกของคอมโพเนนต์ (DLL) เข้าสู่กระบวนการ (DLLHost.exe) ตามความต้องการ
- การจัดการกระบวนการเซิร์ฟเวอร์แบบมีการจัดการเพื่อโฮสต์คอมโพเนนต์
- การสร้างและจัดการเธรดที่คอมโพเนนต์ใช้
- การเข้าถึงออบเจ็กต์บริบทสำหรับตัวจัดสรรทรัพยากร อนุญาตให้เชื่อมโยงทรัพยากรที่ได้รับมาโดยอัตโนมัติกับบริบท
Event ID 10006 และ 1530: แอปพลิเคชัน COM+ ไม่ทำงาน
เมื่อแอปพลิเคชัน COM+ หยุดทำงานใน Windows เมื่อผู้ใช้ล็อกออฟ คุณอาจเห็นข้อผิดพลาดที่คล้ายกับต่อไปนี้ใน Application Log บนเครื่องไคลเอ็นต์ หากไฟล์รันของไคลเอ็นต์ทำงานบนคอมพิวเตอร์เดียวกับแอปพลิเคชันเซิร์ฟเวอร์ COM+ คุณจะเห็นข้อผิดพลาดนี้บนเซิร์ฟเวอร์ COM+:
Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10006
Date: 10/17/2009
Time: 1:36:39 PM
User: Domain\user
Computer: *****
Description:
DCOM got error “Unspecified error” from the computer ‘servername’ when attempting to activate the server: {AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}
คุณยังจะเห็นเหตุการณ์ที่คล้ายกับต่อไปนี้ใน Application Log ของคอมพิวเตอร์ที่แอปพลิเคชัน COM+ ทำงาน:
Log Name: Application
Source: Microsoft-Windows-User Profiles Service
Date: 10/26/2009 8:22:13 AM
Event ID: 1530
Task Category: None
Level: Warning
Keywords: Classic
User: SYSTEM
Computer: SERVERNAME
Description:
Windows detected your registry file is still in use by other applications or services. The file will be unloaded now. The applications or services that hold your registry file may not function properly afterwards.DETAIL –
1 user registry handles leaked from \Registry\User\S-1-5-21-1049297961-3057247634-349289542-1004_Classes:
Process 2428 (\Device\HarddiskVolume1\Windows\System32\dllhost.exe) has opened key \REGISTRY\ USER \ S-1-5-21-1123456789-3057247634-349289542-1004_CLASSES
สาเหตุของ Event ID 10006 และ 1530
ตาม Microsoft:
User Profile Service จะบังคับให้โปรไฟล์ผู้ใช้ถูกปลดโหลดเมื่อผู้ใช้ล็อกออฟ นี่คือสถานการณ์ที่ฟังก์ชันการบังคับปลดโหลดโปรไฟล์ผู้ใช้อาจทำลายแอปพลิเคชัน หากแฮนเดิลรีจิสทรีไม่ได้ถูกปิดในกระบวนการ ฟังก์ชันใหม่ของ User Profile Service นี้เป็นพฤติกรรมเริ่มต้น
ขบวนความตนของผู้ใช้ที่เชื่อมโยงกับแอปพลิเคชัน COM+ จะล็อกออนเมื่อแอปพลิเคชัน COM+ ถูกเริ่มต้นครั้งแรก ดังนั้น ปัญหานี้จะถูกกระตุ้น หากผู้ใช้นี้ล็อกออฟจากเครื่อง โปรไฟล์ของผู้ใช้จะถูกปลดโหลด และแอปพลิเคชัน COM+ จะไม่สามารถอ่านคีย์รีจิสทรีในโปรไฟล์ของขบวนความตนผู้ใช้ได้อีกต่อไป
เพื่อแก้ไขปัญหานี้ คุณต้องแก้ไขพฤติกรรมเริ่มต้นของ User Profile Service ผ่าน Group Policy Editor (gpedit.msc)
วิธีทำมีดังนี้:
- เปิด Local Group Policy Editor
- ไปที่พาธต่อไปนี้:
Computer Configuration > Administrative Templates > System > User Profiles
- ที่ फलकขวา คลิกสองครั้งที่รายการ Do not forcefully unload the user registry at user logoff เพื่อแก้ไคคุณสมบัติ
- เปลี่ยนการตั้งค่าจาก Not Configured เป็น Enabled โดยเลือกปุ่ม radio ที่ตรงกัน ซึ่งจะปิดใช้งานฟีเจอร์ใหม่ของ User Profile Service
- คลิก Apply > OK
การตั้งค่านโยบาย 'Do not forcefully unload the user registry at user logoff' ต้านทานพฤติกรรมเริ่มต้นของระบบปฏิบัติการ Windows Client เมื่อเปิดใช้งาน User Profile Service จะไม่บังคับปลดโหลดรีจิสทรี แต่จะรอจนกว่าไม่จะมีกระบวนการอื่นใช้งานรีจิสทรีของผู้ใช้ ก่อนจะปลดโหลด
หวังว่าจะช่วยได้!