อาการ
การเรียกวิธีการ STA COM ส่งผลให้0x8001010E RPC_E_WRONG_THREADหลังจากติดตั้ง .NET Framework 4.8
แก้ไข ปัญหา
วิธีที่ 1: ตัวแปรสภาพแวดล้อม
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:COMPLUS_DisableCCWSupportIAgileObject=1
วิธีนี้มีผลต่อสภาพแวดล้อมใดๆ ที่สืบทอดตัวแปรสภาพแวดล้อมนี้ ซึ่งอาจเป็นเพียงเซสชันคอนโซลเดียว หรืออาจส่งผลต่อทั้งเครื่องถ้าคุณตั้งค่าตัวแปรสภาพแวดล้อมส่วนกลาง ชื่อตัวแปรสภาพแวดล้อมไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก
วิธีที่ 2: รีจิสทรี
ใช้ Registry Editor (regedit.exe) ค้นหาซับคีย์ต่อไปนี้:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
สําหรับกระบวนการแบบ 32 บิตบนระบบ x64 ให้ใช้:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework
จากนั้นเพิ่มต่อไปนี้:ชื่อค่า: DisableCCWSupportIAgileObject ชนิด: DWORD (32 บิต) ค่า (หรือที่เรียกว่า REG_WORD) ค่า: 1
คุณสามารถใช้เครื่องมือ Windows REG.EXE เพื่อเพิ่มค่านี้จากบรรทัดคําสั่งหรือสภาพแวดล้อมการเขียนสคริปต์ ตัวอย่างเช่น:
reg add HKLM\SOFTWARE\Microsoft\ NETFramework /v DisableCCWSupportIAgileObject /t REG_DWORD /d 1
ในกรณีนี้ HKLM จะถูกใช้แทนHKEY_LOCAL_MACHINE ใช้ reg add /? เพื่อดูวิธีใช้เกี่ยวกับไวยากรณ์นี้ ชื่อค่ารีจิสทรีไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก
ข้อมูลเพิ่มเติม
ข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงรันไทม์ของ .NET Framework 4.8 นี้สามารถพบได้ที่นี่: https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/runtime/4.7.2-4.8#net-interop-will-now-queryinterface-for-iagileobject-a-winrt-interface
นําไปใช้กับ
แอปพลิเคชันที่ทํางานบน .NET Framework 4.8 บน Windows รุ่นที่สนับสนุน