Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Giới thiệu

Bài viết này mô tả hotfix rollup 2996568 có sẵn cho Microsoft .NET Framework 4.5, .NET Framework 4.5.1 và .NET Framework 4.5.2. Để biết thêm thông tin về các hotfix rollup giải quyết, hãy xem phần "Thông tin".

Nhật hotfix này có sẵn cho hệ điều hành sau:

  • Windows Server 2008 R2 SP1

  • Windows 7 SP1

  • Windows Server 2008 SP2

  • Windows Vista SP2


Giải pháp

Microsoft hiện đã cung cấp bản cập nhật nóng được hỗ trợ. Tuy nhiên, nó là nhằm khắc phục chỉ sự cố mà bài viết này mô tả. Áp dụng cho các hệ thống đang gặp sự cố cụ thể này.

Để khắc phục sự cố này, hãy liên hệ với dịch vụ hỗ trợ khách hàng Microsoft để lấy hotfix. Để biết danh sách đầy đủ số điện thoại Dịch vụ hỗ trợ khách hàng của Microsoft và thông tin về chi phí hỗ trợ, ghé thăm website sau của Microsoft:

http://support.microsoft.com/contactus/?ws=supportLưu ý Trong trường hợp đặc biệt, chi phí thường phát sinh cho cuộc gọi hỗ trợ có thể bị hủy bỏ nếu chuyên viên hỗ trợ Microsoft xác định rằng một Cập Nhật cụ thể sẽ giải quyết vấn đề của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng cho các vấn đề không phù hợp với bản Cập Nhật cụ thể trong câu hỏi và câu hỏi hỗ trợ bổ sung.

Thông tin

Điều kiện tiên quyết

Để áp dụng hotfix này, bạn phải có .NET Framework 4.5, .NET Framework 4.5.1 hoặc .NET Framework 4.5.2 cài đặt.

Yêu cầu khởi động lại

Bạn phải khởi động lại máy tính sau khi bạn áp dụng hotfix này nếu bất kỳ tệp nào bị ảnh hưởng đang được sử dụng. Chúng tôi khuyên bạn đóng tất cả các ứng dụng dựa trên .NET Framework trước khi bạn áp dụng hotfix này.

Thông tin thay thế cập nhật nóng

Gói hotfix này không thay thế gói hotfix phát hành trước đó.


















Hotfix rollup này giải quyết các vấn đề

Vấn đề 1

Hotfix này giải quyết các vấn đề sau hai luồng trong System.IO.Packaging khi bạn sử dụng .NET Framework 4.5, .NET Framework 4.5.1 hoặc .NET Framework 4.5.2.

  • Gián đoạn có thể xảy ra khi bạn sử dụng gói lớn chủ đề riêng biệt. System.IO.Packaging sử dụng IsolatedStorage gói lớn hơn 10 MB (MB). Khi hai hoặc nhiều luồng sử dụng gói lớn, gián đoạn có thể xảy ra, ngay cả khi các gói độc lập. Gián đoạn bao gồm hai chủ đề. Một chờ đợi trong IsolatedStorageFile.Lock khi khác đang chờ đợi trong các phương pháp khác loại IsoloatedStorageFile . Vấn đề này được khắc phục bằng cách thêm đồng bộ hoá System.IO.Packaging để tránh sự cố trong IsolatedStorageFile.

  • Ngoại lệ có thể xảy ra khi bạn lấy PackageProperties từ gói được mở ngày chủ đề riêng biệt, ngay cả khi các gói độc lập. Ngăn xếp cuộc gọi phổ biến nhất phát sinh từ này là như sau:System.Xml.XmlException: Unrecognized root element in Core Properties part. Line 2, position 2. atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part) at
    System.IO.Packaging.Package.get_PackageProperties()
    System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: id atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part) at
    System.IO.Packaging.Package.get_PackageProperties()
    Sự cố này do tranh trên tài nguyên được chia sẻ nội bộ và được giải quyết bằng cách cho mỗi gói một bản sao của tài nguyên đó.


Vấn đề 2

Ứng dụng Windows Presentation Foundation (WPF) có thể sử dụng lượng bộ nhớ khi nhận được nhiều yêu cầu dịch vụ UIAutomation . Bộ nhớ thuộc đối tượng có không gian tên System.Threading . Điều này bao gồm System.Threading.CancellationTokenSource, System.Threading.TimerQueueTimer, System.Threading.Timervà nhiều lớp khác liên quan.

Đây là các đối tượng được phân bổ ư WPF khi WPF nhận được yêu cầu cho các hoạt động UIAutomation . Cuối cùng phát hành cho đến khi hết thời hạn yêu cầu hết hạn (thường là 3 phút). Nếu các yêu cầu đến một cách nhanh chóng, ứng dụng có vẻ rò rỉ bộ nhớ hoặc sử dụng nhiều bộ nhớ hơn những gì là hợp lý (càng nhiều càng 500 MB).

Vấn đề này được giải quyết bằng cách thả các đối tượng khi yêu cầu được hoàn thành, thay vì chờ đợi hết hạn.

Vấn đề 3

Trong ứng dụng WPF, khi bạn nhập văn bản bằng cách sử dụng máy Hàn Quốc vào phương pháp biên tập viên (IME), nhà văn bản chỉnh sửa ComboBox không được thay đổi một cách chính xác trong một số trường hợp.

Sự cố này có thể hiển thị các hiện tượng khác nhau và có phụ thuộc vào cách ứng dụng (hoặc tác giả điều khiển) có cấu hình ComboBox. Ví dụ:

  • Sau khi bạn nhập và tab đi (hoặc di chuyển con trỏ tới một điều khiển), Hiển thị nội dung ComboBox hoàn nguyên về chuỗi trống hoặc giá trị có trước khi nhập vào.

  • Các tính năng TextSearch ComboBox hoạt động không đúng. Nó không phù hợp với tiền tố đã được nhập, hoặc khớp với một mục không liên quan.

Vấn đề này được giải quyết bằng cách sửa đổi logic để điều chỉnh thời gian IME tiếng Hàn hơi khác biệt giữa IMEs khác.

Vấn đề 4

Sau khi bạn sử dụng một để thực hiện một thao tác kéo và thả trong ứng dụng WPF, cử chỉ chạm tiếp theo sẽ bị bỏ qua.

Vấn đề này được giải quyết bằng cách khôi phục trạng thái nội bộ xử lý nhập liên lạc khi thao tác kéo và thả xong. Theo cách này, nó tính vị trí của cử chỉ chạm tới một cách chính xác.

Vấn đề 5

Triển khai AuthenticationManager mới có thể được kích hoạt tùy chọn để tăng hiệu suất đáng kể khi làm việc với tùy chỉnh IAuthenticationModules.

Lưu ý Các rủi ro bảo mật xuất hiện nếu mã không được thiết kế để có chủ đề an toàn. Thay đổi hành vi chính nằm trên các phương pháp PreAuthenticate và Authenticate . Đã nó được đảm bảo rằng mã thực hiện serially (khoá chung được thực hiện). Triển khai mới, không khóa được và mã khách hàng phải đảm bảo an toàn chuỗi.
Ngoài ra, với việc triển khai mới, kích thước bộ nhớ cache PrefixLookup có thể được điều khiển thông qua đăng ký.

Khoá đăng ký sau có thể được sử dụng để kích hoạt và cấu hình tối đa chiều dài PrefixLookup:

  • Cấu hình chung[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319]"System.Net.AuthenticationManager.HighPerformance"=dword:00000001
    "System.Net.AuthenticationManager.PrefixLookupMaxCount"=dword:00010000

  • Cấu hình cục bộ ứng dụng[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.HighPerformance]"c:\myapp\myapp.exe"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.PrefixLookupMaxCount]
    "c:\myapp\myapp.exe"=dword:00010000

Thiết đặt chung có ưu tiên hơn cài đặt ứng dụng cục bộ. Cài đặt ứng dụng toàn cầu và địa phương có thể được kết hợp. PrefixLookupMaxCount sẽ không bị ảnh hưởng nếu cài đặt ứng dụng chung hoặc địa phương HighPerformance được đặt thành giá 1.

Vấn đề 6

Giả sử rằng bạn chạy ứng dụng dựa trên .NET Framework 4.5, .NET Framework 4.5.1 hoặc .NET Framework 4.5.2. Ứng dụng gây ra một ngoại lệ trong một phương pháp quản lý được gọi là mã riêng và được thông qua một giao diện COM tham khảo. Trong trường hợp này, các ứng dụng có thể sập.

Ví dụ: một ứng dụng được viết bằng VB6 gọi DLL C#. Nếu ứng dụng và DLL được biên dịch trong chế độ phát hành, khi một ngoại lệ ném mã C#, một sự vi phạm truy cập xảy ra và ứng dụng lỗi.

Vấn đề 7

Khi dự án XAML dựa trên công việc mất nhiều thời gian hơn thời gian mặc định cho thuê (5 phút) của các đối tượng từ xa được xác định bởi các tác vụ để xây dựng XAML, bạn nhận được thông báo lỗi tương tự như sau:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.XAML.Targets(193,5): lỗi XC1000: XC1020: xây dựng có lỗi trong việc XAML MSBuild: ' đối tượng ' / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' đã bị ngắt kết nối hoặc không tồn tại máy chủ.'

Sau khi bạn áp dụng hotfix này, bạn có thể xác định mình thuê thời gian (phút) bằng cách xác định các biến môi trường được đặt tên XamlBuildTaskRemotingLeaseLifetimeInMinutes.

Để thiết lập các biến môi trường trong tệp dự án MSBuild, bạn phải bao gồm thông tin sau trong tệp dự án:<Project ...> <UsingTask TaskName="MySetEnv" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
<ParameterGroup>
<Name Required="true" />
<Value Required="false" />
</ParameterGroup>
<Task>
<Code Type="Fragment" Language="cs">System.Environment.SetEnvironmentVariable(Name, Value);</Code>
</Task>
</UsingTask>
...
...
<Target Name="BeforeBuild">
<MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="1440" />
</Target>
<Target Name="AfterBuild">
<MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="" />
</Target>
</Project>
TaskName trong ví dụ này là MySetEnv. Nó có thể được đặt bất kỳ chuỗi hợp lệ cho tên tác vụ. Ví dụ này đặt thời gian thuê 1.440 phút (một ngày) trước khi xây dựng dự án và trình bày để trống sau nhà. Nếu có nhiều dự án yêu cầu gia hạn thời gian thuê, từng dự án cần cấu hình này.

Vấn đề 8

Khi bạn sử dụng AJAX postback trang, đôi khi postback được chuyển hướng tới một URL. Bạn có thể lấy RedirectLocation trong một HttpModule qua HttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation"].

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×