Triệu chứng
Việc gọi phương pháp STA COM dẫn đến 0x8001010E RPC_E_WRONG_THREAD sau khi cài đặt .NET Framework 4.8.
Giải pháp thay thế
Phương pháp 1: Biến môi trường
Đặt biến môi trường sau đây:COMPLUS_DisableCCWSupportIAgileObject=1
Phương pháp này ảnh hưởng đến bất kỳ môi trường kế thừa biến môi trường này. Đây có thể chỉ là một phiên giao diện điều khiển duy nhất hoặc có thể ảnh hưởng đến toàn bộ máy nếu bạn đặt biến môi trường trên toàn cầu. Tên biến môi trường không phân biệt chữ hoa chữ thường.
Phương pháp 2: Sổ đăng ký
Sử dụng Trình soạn thảo Sổ đăng ký (regedit.exe), tìm một trong các khóa phụ sau đây:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
Đối với các quy trình 32 bit trên hệ thống x64, hãy sử dụng:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework
Sau đó, thêm các giá trị sau:Tên giá trị: DisableCCWSupportIAgileObject Loại: Giá trị DWORD (32 bit) (còn được gọi là REG_WORD) Giá trị: 1
Bạn có thể sử dụng công cụ REG.EXE Windows để thêm giá trị này từ một dòng lệnh hoặc môi trường script. Ví dụ:
reg add HKLM\SOFTWARE\Microsoft\. NETFramework /v DisableCCWSupportIAgileObject /t REG_DWORD /d 1
Trong trường hợp này, HKLM được sử dụng thay cho HKEY_LOCAL_MACHINE. Sử dụng reg add /? để xem trợ giúp về cú pháp này. Tên giá trị sổ đăng ký không phân biệt chữ hoa/thường.
Thông tin Bổ sung
Bạn có thể tìm thêm thông tin về thay đổi thời gian chạy .NET Framework 4.8 này tại đây: 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
Áp dụng cho
Các ứng dụng chạy trên .NET Framework 4.8 trên các phiên bản Windows được hỗ trợ.