Síntomas
La invocación del método STA COM provoca 0x8001010E RPC_E_WRONG_THREAD después de instalar .NET Framework 4.8.
Soluciones
Método 1: Variable de entorno
Establecer la siguiente variable de entorno:COMPLUS_DisableCCWSupportIAgileObject=1
Este método afecta a cualquier entorno que herede esta variable de entorno. Puede ser solo una sesión de consola o puede afectar a toda la máquina si estableces la variable de entorno globalmente. El nombre de la variable de entorno no distingue mayúsculas de minúsculas.
Método 2: Registro
Con el Editor del Registro (regedit.exe), busque una de las siguientes subclaves:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
Para procesos de 32 bits en sistemas x64, use:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework
A continuación, agrega el siguiente:Nombre del valor: DisableCCWSupportIAgileObject Type: DWORD (32 bits) Value (también denominado REG_WORD) Value: 1
Puede usar la herramienta windows REG.EXE para agregar este valor desde un entorno de línea de comandos o scripting. Por ejemplo:
reg add HKLM\SOFTWARE\Microsoft\. NETFramework /v DisableCCWSupportIAgileObject /t REG_DWORD /d 1
En este caso, se usa HKLM en lugar de HKEY_LOCAL_MACHINE. Usar reg add /? para ver ayuda sobre esta sintaxis. El nombre del valor del Registro no distingue mayúsculas de minúsculas.
Más información
Puedes encontrar más información sobre este cambio en tiempo de ejecución de .NET Framework 4.8 aquí: 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
Se aplica a
Aplicaciones que se ejecutan en .NET Framework 4.8 en versiones compatibles de Windows.