Pendahuluan

Artikel ini menjelaskan hotfix rollup 2996568 yang tersedia untuk Microsoft .NET Framework 4,5, .NET Framework 4.5.1 dan .NET Framework 4.5.2. Untuk informasi selengkapnya tentang masalah yang menyelesaikan pembatalan hotfix, lihat bagian "Informasi selengkapnya".Batal hotfix ini tersedia untuk sistem operasi berikut:

  • Windows Server 2008 R2 SP1

  • Windows 7 SP1

  • Windows Server 2008 SP2

  • Windows Vista SP2

Pemecahan masalah

Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, ini ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini.Untuk mengatasi masalah ini, hubungi layanan dukungan pelanggan Microsoft untuk mendapatkan hotfix. Untuk daftar lengkap nomor telepon layanan dukungan pelanggan Microsoft dan informasi mengenai biaya dukungan, kunjungi website Microsoft berikut:

http://support.microsoft.com/contactus/?ws=supportCatatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan dukungan mungkin dibatalkan apabila profesional dukungan Microsoft menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.

Informasi lebih lanjut

Prasyarat

Untuk menerapkan hotfix ini, Anda harus .NET Framework 4,5, .NET Framework 4.5.1 atau .NET Framework 4.5.2 diinstal.

Persyaratan menghidupkan ulang

Anda harus memulai ulang komputer setelah menerapkan hotfix ini jika berkas yang terpengaruh sedang digunakan. Kami sarankan Anda menutup semua aplikasi berbasis .NET Framework sebelum menerapkan hotfix ini.

Informasi penggantian hotfix

Paket hotfix ini tidak menggantikan paket hotfix yang diedarkan sebelumnya.

Masalah yang Batal hotfix ini menyelesaikan

Masalah 1

Perbaikan terbaru ini memecahkan masalah threading dua berikut dalam System.IO.Packaging saat Anda menggunakan .NET Framework 4,5, .NET Framework 4.5.1 atau .NET Framework 4.5.2.

  • Kemogokan mungkin terjadi saat Anda menggunakan paket besar pada thread terpisah. System.IO.Packaging menggunakan IsolatedStorage untuk paket yang lebih dari 10 megabyte (MB). Ketika dua atau lebih untaian menggunakan paket besar, kemogokan dapat terjadi, bahkan jika paket independen. Kemacetan melibatkan dua untaian. Salah satu menunggu di IsolatedStorageFile.Lock sementara yang lain menunggu dalam kelas IsoloatedStorageFile metode lain. Masalah ini telah diperbaiki dengan menambahkan sinkronisasi System.IO.Packaging untuk menghindari masalah pada IsolatedStorageFile.

  • Pengecualian mungkin terjadi ketika Anda mendapatkan PackageProperties dari paket yang dibuka di thread terpisah, bahkan jika paket independen. Tumpukan panggilan yang paling umum yang muncul dari ini adalah sebagai berikut:System.Xml.XmlException: Unrecognized root element in Core Properties part. Line 2, position 2. atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part) atSystem.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) atSystem.IO.Packaging.Package.get_PackageProperties() Masalah ini disebabkan oleh sanggahan di sharing internal, dan diatasi dengan memberikan paket setiap salinan dari sumber.

Masalah 2

Aplikasi Windows Presentation Foundation (WPF) dapat menggunakan sejumlah besar memori ketika menerima banyak permintaan untuk layanan UIAutomation . Memori milik objek yang berasal dari System.Threading namespace. Ini termasuk System.Threading.CancellationTokenSource, System.Threading.TimerQueueTimer, System.Threading.Timer, dan beberapa kelas terkait lainnya.Ini adalah objek yang dialokasikan atas nama WPF ketika WPF menerima permintaan untuk UIAutomation aktivitas. Akhirnya dirilis hingga waktu habis batas waktu permintaan habis (biasanya tiga menit). Jika permintaan tiba dengan cepat, aplikasi tampaknya kebocoran memori, atau menggunakan memori lebih daripada apa wajar (sebanyak 500 MB).Masalah ini diatasi dengan melepaskan objek ketika permintaan selesai, dan bukannya menunggu batas waktu habis.Masalah 3Dalam aplikasi WPF, ketika Anda memasukkan teks dengan menggunakan bahasa Korea Input metode Editor (IME), properti teks yang dapat diedit ComboBox tidak berubah dengan benar dalam beberapa kasus.Masalah ini dapat menunjukkan gejala-gejala yang berbeda, dan yang tergantung pada bagaimana aplikasi (atau pengarang kontrol) dikonfigurasi ComboBox. Misalnya:

  • Setelah Anda mengetik dan tab jauh (atau menggerakkan fokus ke kontrol lainnya), ditampilkan teks ComboBox mengembalikan string kosong, atau nilai yang sebelumnya mengetik.

  • Fitur TextSearch ComboBox berperilaku dengan benar. Tidak cocok dengan awalan yang telah dimasukkan, atau cocok dengan item terkait.

Masalah ini diatasi dengan mengubah logika untuk menampung waktu IME Korea yang sedikit berbeda dari IMEs lainnya.Masalah 4Setelah Anda menggunakan sentuhan untuk menjalankan operasi seret-dan-jatuhkan dalam aplikasi WPF, gerakan sentuh berikutnya akan diabaikan.Masalah ini diatasi dengan memulihkan keadaan internal pengendali input sentuh saat operasi seret-dan-jatuhkan selesai. Dengan cara ini, maka menghitung posisi gerakan sentuh berikutnya dengan benar.Masalah 5Implementasi AuthenticationManager baru dapat diaktifkan opsional untuk mendapatkan kinerja yang signifikan saat Anda bekerja dengan kustom IAuthenticationModules.Catatan Utama risiko keamanan muncul jika kode tidak dirancang untuk thread-aman. Perubahan perilaku utama terletak pada metode PreAuthenticate dan mengotentikasi . Sebelumnya dijamin bahwa kode eksekusi serial (kunci global diambil). Implementasi baru, kunci tidak dilakukan, dan kode pelanggan harus menjamin keamanan thread.Selain itu, dengan implementasi baru, ukuran cache PrefixLookup dapat dikendalikan melalui registri.Kunci registri berikut dapat digunakan untuk mengaktifkan dan mengkonfigurasi panjang maksimum PrefixLookup:

  • Konfigurasi global[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319]"System.Net.AuthenticationManager.HighPerformance"=dword:00000001"System.Net.AuthenticationManager.PrefixLookupMaxCount"=dword:00010000

  • Konfigurasi aplikasi lokal[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

Tataan global memiliki prioritas melalui setelan aplikasi lokal. Pengaturan lokal dan global aplikasi dapat campuran. PrefixLookupMaxCount tidak akan terpengaruh jika setelan performa tinggi dari prosesor global atau lokal aplikasi disetel ke DWORD 1.Masalah 6Misalnya Anda menjalankan aplikasi yang didasarkan pada .NET Framework 4,5, .NET Framework 4.5.1 atau .NET Framework 4.5.2. Aplikasi mengeliminasi pengecualian dalam metode yang dikelola yang dipanggil dari kode asli dan telah disahkan antarmuka COM dengan referensi. Dalam situasi ini, aplikasi dapat lumpuh.Misalnya: aplikasi yang ditulis dalam VB6 panggilan C# DLL. Jika aplikasi dan DLL disusun dalam mode peluncuran, ketika pengecualian telah dilemparkan kode C#, terjadi pelanggaran akses, dan aplikasi lumpuh.Masalah 7Ketika alur kerja berbasis XAML proyek memerlukan waktu lebih lama daripada waktu izin default (lima menit) dari jauh objek yang didefinisikan oleh tugas untuk membangun XAML, Anda menerima pesan galat yang menyerupai berikut ini:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.XAML.targets(193,5): galat XC1000: XC1020: terjadi kesalahan membangun dalam XAML MSBuild tugas: ' objek ' / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' telah diputus atau tidak ada di server.'

Setelah Anda menerapkan perbaikan terbaru ini, Anda dapat menentukan waktu kontrak (dalam menit) dengan menetapkan variabel lingkungan yang bernama XamlBuildTaskRemotingLeaseLifetimeInMinutes.Untuk menetapkan variabel lingkungan di berkas proyek untuk MSBuild, Anda harus menyertakan informasi berikut dalam berkas proyek:<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 dalam contoh ini adalah MySetEnv. Hal ini dapat diatur untuk string yang valid untuk nama tugas. Contoh ini menetapkan izin waktu ke 1.440 menit (satu hari) sebelum membangun proyek, dan menetapkan ke null setelah bangunan. Jika ada beberapa proyek yang diperlukan untuk memperpanjang waktu kontrak, setiap proyek memerlukan konfigurasi ini.Masalah 8Ketika Anda menggunakan AJAX postback halaman, kadang-kadang postback diarahkan ke URL lain. Anda dapat memperoleh RedirectLocation di HttpModule melalui HttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation"].

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.