Triệu chứng
Giả sử rằng bạn đã nâng cấp lên Microsoft .NET Framework 4.6 trên máy tính của bạn. Khi bạn sử dụng ứng dụng sử dụng Windows Communication Framework (WCF) để gửi thông báo XML SOAP, mã hoá có thể lâu hơn một chút. Trong một số trường hợp, điều này có thể ảnh hưởng đến mức độ ứng dụng máy chủ có thể xử lý yêu cầu.
Nguyên nhân
Sự cố này xảy ra vì một biên dịch Just-In-Time (JIT) mới có tên RyuJIT. Biên soạn này sử dụng tối ưu hóa khác với biên soạn JIT64 hợp lệ. Phương pháp mã hoá chuỗi trong XmlDictionaryWriter trên đường dẫn mã nóng không tối ưu hóa cho trình biên soạn JIT mới tạo riêng hướng dẫn chạy chậm hơn và mã hoá mất nhiều thời gian. Khi thư SOAP chứa nhiều chuỗi được mã hoá, mã chậm hơn này được sử dụng thường xuyên hơn và có thể ảnh hưởng đến thời gian mã hóa.
Giải pháp
Để khắc phục sự cố này, cấu hình ứng dụng để vô hiệu hoá việc ngen System.Runtime.Serialization.dll lấy và sử dụng công cụ JIT hợp lệ. Để thực hiện việc này, hãy thực hiện một trong những phương pháp sau:
-
Thiết lập các biến môi trường sau:
COMPLUS_useLegacyJit=1
COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization -
Trong sổ đăng ký, tạo một trong những khoá con sau:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
Sau đó, thêm các giá trị sau:-
Tên khoá: useLegacyJit
Loại: REG_WORD
Giá trị: 1 -
Tên khoá: DisableNativeImageLoadList
Loại: REG_SZ
Giá trị: System.Runtime.Serialization
-
-
Thêm văn bản sau vào ứng dụng < >. exe.config tập tin. Tạo chỉ mục nếu họ đã tồn tại.<configuration> <runtime>
<useLegacyJit enabled="1">
<disableNativeImageLoad>
<assemblyIdentity name="System.Runtime.Serialization" />
</disableNativeImageLoad>
</runtime>
</configuration>
Để biết thêm thông tin về các vấn đề trong .NET Framework 4.6, xem sự cố cho .NET Framework 4.6 đã biết.
Thông tin
Để biết thêm thông tin về thay đổi phiên bản của sản phẩm và các hiệu ứng trong .NET Framework 4.6, xem Tương thích ứng dụng trong .NET Framework 4.6.