증상
컴퓨터에 Microsoft.NET Framework 4.6 업그레이드 한 것을 가정 합니다. XML SOAP 메시지를 보내고 Windows 통신 프레임 워크 (WCF)을 사용 하는 응용 프로그램을 사용 하 여 인코딩 시간이 약간 더 걸릴 수 있습니다. 어떤 경우에는 서버 응용 프로그램이 요청을 처리할 수 있는 속도이 달라질 수 있습니다.
원인
이 문제는 RyuJIT 라는 새로운 jit (JUST-IN-TIME) 컴파일러를 인해 발생 합니다. 이 컴파일러는 레거시 JIT64 컴파일러 다른 최적화를 사용합니다. 핫 코드 경로에서 XmlDictionaryWriter 의 문자열 인코딩 방법을 새로운 JIT 컴파일러에 최적화 되지 않는 생성 된 네이티브 명령을 느리게 실행 및 인코딩 시간이 오래 걸립니다. 인코딩할 문자열의 많은 포함 하는 SOAP 메시지를이 느린 코드를 자주 사용 하 고 인코딩 시간에 영향을 줄 수 있습니다.
해결 방법
이 문제를 해결 하기 위해 System.Runtime.Serialization.dll 어셈블리에 대해 ngen의 사용을 해제 하 고 이전 JIT 엔진을 사용 하 여 응용 프로그램을 구성 합니다. 이렇게 하려면 다음 방법 중 하나를 사용 합니다.
-
다음과 같은 환경 변수를 설정 합니다.
COMPLUS_useLegacyJit=1
COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization -
레지스트리에서 다음 하위 키 중 하나를 만듭니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
다음 값을 추가 하십시오.-
키 이름: useLegacyJit
형식: REG_WORD
값: 1 -
키 이름: DisableNativeImageLoadList
형식: REG_SZ
값: System.Runtime.Serialization
-
-
< 응용 프로그램 >에 다음 텍스트를 추가 합니다..exe.config 파일. 아직 존재 하지 않으면 표시 된 섹션을 만듭니다.<configuration> <runtime>
<useLegacyJit enabled="1">
<disableNativeImageLoad>
<assemblyIdentity name="System.Runtime.Serialization" />
</disableNativeImageLoad>
</runtime>
</configuration>
.NET Framework 4.6에서 알려진된 문제에 대 한 자세한 내용은 알려진 문제를.NET Framework 4.6을참조 하십시오.
자세한 내용
제품 버전 변경 및.NET Framework 4.6에 미치는 영향에 대 한 자세한 내용은 .NET Framework 4.6에서 응용 프로그램 호환성을 참조 하십시오.