ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

บทนำ

บทความนี้อธิบายถึงการรวบรวมโปรแกรมแก้ไขด่วน 2996568 ที่พร้อมใช้งานสำหรับ Microsoft .NET Framework 4.5, .NET Framework 4.5.1 และ.NET Framework 4.5.2 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่รวบรวมโปรแกรมแก้ไขด่วนแก้ไข ดูส่วน "ข้อมูลเพิ่มเติม"

ยกเลิกโปรแกรมแก้ไขด่วนนี้จะพร้อมใช้งานสำหรับระบบปฏิบัติการต่อไปนี้:

  • Windows Server 2008 R2 SP1

  • Windows 7 SP1

  • Windows Server 2008 SP2

  • Windows Vista SP2


การแก้ปัญหา

โปรแกรมแก้ไขด่วนจะพร้อมใช้งานได้ในขณะนี้จาก Microsoft อย่างไรก็ตาม มีจุดมุ่งหมายที่จะแก้ไขเฉพาะปัญหาที่บทความนี้อธิบายไว้เท่านั้น นำวิธีนี้ไปใช้กับระบบที่ประสบกับปัญหาที่เฉพาะเจาะจงเท่านั้น

หากต้องการแก้ไขปัญหานี้ ให้ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สำหรับรายชื่อทั้งหมดของหมายเลขโทรศัพท์ของบริการการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่ายสนับสนุน แวะไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:

http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ในกรณีพิเศษ ค่าบริการที่เรียกเก็บตามปกติเมื่อโทรติดต่อฝ่ายสนับสนุนอาจจะยกเลิกได้หาก Microsoft Support Professional ตัดสินว่าโปรแกรมปรับปรุงที่เฉพาะเจาะจงจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง

ข้อมูลเพิ่มเติม

ข้อกำหนดเบื้องต้น

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี 4.5 Framework .NET, .NET Framework 4.5.1 หรือ.NET Framework 4.5.2 ที่ติดตั้ง

ข้อกำหนดการรีสตาร์ท

คุณต้องรีสตาร์ทคอมพิวเตอร์หลังจากใช้โปรแกรมแก้ไขด่วนนี้ถ้ามีการใช้แฟ้มที่ได้รับผลกระทบใด ๆ เราขอแนะนำให้ คุณปิดโปรแกรมประยุกต์ที่ใช้.NET Framework ทั้งหมดก่อนที่จะใช้โปรแกรมแก้ไขด่วนนี้

ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน

แพคเกจโปรแกรมแก้ไขด่วนนี้ไม่ได้แทนแพคเกจโปรแกรมแก้ไขด่วนที่ออกมาก่อนหน้านี้


















การตัดสินค้าจากคลังที่แก้ไขยกเลิกโปรแกรมแก้ไขด่วนนี้

ปัญหาที่ 1

โปรแกรมแก้ไขด่วนนี้แก้ปัญหาเธรดที่สองต่อไปนี้ในSystem.IO.Packagingเมื่อคุณใช้ 4.5 Framework .NET, .NET Framework 4.5.1 หรือ.NET Framework 4.5.2

  • การล็อกตายอาจเกิดขึ้นเมื่อคุณใช้แพคเกจขนาดใหญ่บนเธรดที่แยกต่างหาก System.IO.Packagingใช้IsolatedStorageสำหรับหีบห่อที่มีขนาดใหญ่กว่า 10 เมกะไบต์ (MB) เมื่ออย่าง น้อยสองเธรดใช้แพคเกจขนาดใหญ่ การล็อกตายอาจเกิดขึ้น แม้ว่าจะไม่เกี่ยวข้องกับแพคเกจ การชะงักงันเกี่ยวข้องกับเธรดที่สอง หนึ่งกำลังรอในIsolatedStorageFile.Lockในขณะที่อีกกำลังรอในอีกวิธีหนึ่งในคลาสIsoloatedStorageFile ปัญหานี้ได้รับการแก้ไข โดยการเพิ่มการซิงโครไนส์System.IO.Packagingเพื่อหลีกเลี่ยงปัญหาในIsolatedStorageFile

  • ข้อยกเว้นอาจเกิดขึ้นเมื่อคุณเรียกใช้PackagePropertiesจากแพคเกจที่ถูกเปิดบนเธรดที่แยกจากกัน แม้ว่าแพคเกจเกี่ยวข้องกับงาน สแต็คการเรียกพบบ่อยที่สุดที่เกิดขึ้นจากนี้มีดังนี้: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()
    ปัญหานี้เกิดจากข้อขัดแย้งในทรัพยากรที่ใช้ร่วมกันภายใน และได้รับการแก้ไข โดยการให้สำเนาของทรัพยากรแต่ละแพคเกจ


ปัญหาที่ 2

แอพลิเคชันพื้นฐานในงานนำเสนอ Windows (WPF) ที่อาจใช้หน่วยความจำจำนวนมากเมื่อได้รับการร้องขอมากมายสำหรับบริการการใช้UIAutomation หน่วยความจำเป็นของวัตถุที่มาจากSystem.Threading namespace ซึ่งรวมถึงSystem.Threading.CancellationTokenSource, System.Threading.TimerQueueTimer, System.Threading.Timerและคลาสที่หลายอื่น ๆ ที่เกี่ยวข้อง

เหล่านี้คือวัตถุที่มีการปันส่วนในนามของ WPF เมื่อ WPF ได้รับการร้องขอสำหรับกิจกรรมUIAutomation พวกเขาในขั้นสุดท้ายจะปล่อยจนกระทั่งสิ้นสุดของการหมดเวลาสำหรับการร้องขอหมดอายุ (โดยทั่วไปสามนาที) ถ้าคำขอเข้ามาได้อย่างรวดเร็ว แอพลิเคชันที่ดูเหมือนจะ มีการรั่วหน่วยความจำ หรือใช้หน่วยความจำเพิ่มเติมมากกว่าที่เหมาะสม (มากเท่ากับ 500 MB)

ปัญหานี้แก้ไขได้ โดยการปล่อยวัตถุเมื่อคำขอเสร็จสมบูรณ์แล้ว แทนที่จะรอการสิ้นสุดของการหมดเวลา

ปัญหาที่ 3

ในโปรแกรมประยุกต์ WPF เมื่อคุณป้อนข้อความ โดยใช้การเกาหลี Input Method Editor (IME), คุณสมบัติข้อความของตัวแก้ไขComboBoxจะไม่เปลี่ยนแปลงอย่างถูกต้องในบางกรณี

ปัญหานี้อาจมีอาการที่แตกต่างกัน และขึ้นอยู่กับว่าแอพลิเคชัน (หรือผู้ควบคุม) ได้กำหนดค่าComboBox ตัวอย่างเช่น

  • หลังจากที่คุณพิมพ์ และแท็บเก็บ (หรือย้ายโฟกัสไปยังตัวควบคุมอื่น), ข้อความที่แสดงของComboBoxเปลี่ยน เป็นสายอักขระว่าง หรือเป็นค่าที่เหมือนก่อนที่จะพิมพ์

  • คุณลักษณะTextSearchของComboBoxทำงานอย่างไม่ถูกต้อง ไม่ตรงกับคำนำหน้าที่ถูกป้อน หรือตรงกับรายการไม่เกี่ยวข้อง

ปัญหานี้แก้ไขได้ โดยการแก้ไขตรรกะเพื่อให้เหมาะสมกับกำหนดเวลาของ IME ภาษาเกาหลีที่แตกต่างเล็กน้อยจาก Ime อื่น ๆ

ปัญหาที่ 4

หลังจากที่คุณสามารถใช้การสัมผัสเพื่อดำเนินการลาก และปล่อยในโปรแกรมประยุกต์ WPF รูปแบบลายเส้นแบบสัมผัสถัดไปจะถูกละเว้นไป

ปัญหานี้จะแก้ไขปัญหาได้ ด้วยการเรียกคืนสถานะภายในของตัวจัดการการป้อนข้อมูลด้วยการสัมผัสเมื่อเสร็จสิ้นการดำเนินการลาก และปล่อย ด้วยวิธีนี้ จะคำนวณทำได้อย่างถูกต้องตำแหน่งของรูปแบบลายเส้นแบบสัมผัสถัดไป

ปัญหาที่ 5

ดำเนินการAuthenticationManagerใหม่สามารถถูกเปิดการใช้งานอีกทางหนึ่งคือเพื่อให้สามารถเพิ่มประสิทธิภาพได้มากเมื่อคุณทำงานกับIAuthenticationModulesที่กำหนดเอง

หมายเหตุ ความเสี่ยงด้านความปลอดภัยที่สำคัญรหัสถูกออกแบบมาเพื่อให้ปลอดภัยเธรดไม่ปรากฏขึ้น การเปลี่ยนแปลงลักษณะการทำงานหลักจะอยู่ในวิธีการPreAuthenticateและAuthenticate ก่อนหน้านี้ ได้มีการรับประกันว่า รหัสที่ถูกดำเนินการ serially (ล็อกสากลถ่าย) ในการดำเนินการใหม่ lock ไม่ถูกนำมา และรหัสลูกค้าต้องรับประกันความปลอดภัยของเธรด
นอกจากนี้ กับการนำไปใช้ใหม่ ขนาดแคPrefixLookupสามารถควบคุมผ่านทางรีจิสทรี

คุณสามารถใช้รีจิสทรีคีย์ต่อไปนี้เพื่อเปิดใช้งาน และกำหนดค่าความยาวสูงสุดของPrefixLookup:

  • กำหนดค่าส่วนกลาง[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319]"System.Net.AuthenticationManager.HighPerformance"=dword:00000001
    "System.Net.AuthenticationManager.PrefixLookupMaxCount"=dword:00010000

  • การตั้งค่าคอนฟิกแอพลิเคชันภายในเครื่อง[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

ตั้งค่าส่วนกลางมีลำดับความสำคัญเหนือการตั้งค่าโปรแกรมประยุกต์ภายในเครื่อง การตั้งค่าสากล และเฉพาะแอพลิเคชันสามารถผสมผสานกัน PrefixLookupMaxCountจะไม่ได้รับผลกระทบถ้าการตั้งค่าHighPerformanceท้องถิ่น หรือสากลโปรแกรมประยุกต์ถูกตั้งค่าเป็นDWORD 1

ปัญหาที่ 6

สมมติว่า คุณเรียกใช้โปรแกรมประยุกต์ที่เป็นไปตาม 4.5 Framework .NET, .NET Framework 4.5.1 หรือ.NET Framework 4.5.2 แอพลิเคชันแสดงข้อยกเว้นในวิธีการที่มีการจัดการที่ถูกเรียกจากรหัสท้องถิ่น และถูกส่งผ่าน COM อินเตอร์เฟส โดยการอ้างอิง ในสถานการณ์นี้ แอพลิเคชันอาจล้มเหลว

ตัวอย่าง: โปรแกรมประยุกต์ที่ถูกเขียนใน VB6 เรียกใช้ DLL C# ถ้าแอพลิเคชันและ DLL จะถูกคอมไพล์ในโหมดการนำออกใช้ เมื่อเกิดข้อยกเว้นจะเกิดขึ้นในโค้ด C# การละเมิดการเข้าถึงเกิดขึ้น และแอพลิเคชันล้มเหลว

ปัญหาที่ 7

เมื่อโครงการใช้ XAML ลำดับงานใช้เวลายาวเวลาเริ่มต้นค่าเช่า (5 นาที) ของวัตถุระยะไกลที่กำหนด โดยงานสำหรับการสร้าง XAML คุณได้รับข้อความแสดงข้อผิดพลาดที่คล้ายกับต่อไปนี้:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Xaml.targets(193,5): ข้อผิดพลาด XC1000: XC1020: เกิดข้อผิดพลาดในการสร้างในงาน XAML MSBuild: ' วัตถุ ' / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' ถูกยกเลิก หรือไม่มีอยู่ในเซิร์ฟเวอร์'

หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ คุณสามารถกำหนดเวลาการเช่าของคุณเอง (เป็นนาที) โดยการกำหนดตัวแปรของสภาพแวดล้อมที่มีชื่อว่าXamlBuildTaskRemotingLeaseLifetimeInMinutes

เมื่อต้องการตั้งค่าตัวแปรของสภาพแวดล้อมในแฟ้มโครงการสำหรับ MSBuild คุณจำเป็นต้องรวมข้อมูลต่อไปนี้ในแฟ้มโครงการของคุณ:<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ในตัวอย่างนี้คือMySetEnv คุณสามารถตั้งค่าสายอักขระใด ๆ ที่ถูกต้องสำหรับชื่องาน ตัวอย่างนี้กำหนดเวลาเช่าเป็นค่าเท่ากับ 1440 นาที (หนึ่งวัน) ก่อนอาคารของโครงการ และตั้งค่าให้เป็น null หลังจากอาคาร ถ้ามีหลายโครงการที่ต้องการยืดเวลาค่าเช่า แต่ละโครงการต้องตั้งค่าคอนฟิกนี้

ปัญหาที่ 8

เมื่อคุณใช้ AJAX หนึ่งการส่งคืนในเพจ บางครั้งหนึ่งการส่งคืนที่ถูกเปลี่ยนเส้นทางไปยัง URL อื่น คุณสามารถขอรับRedirectLocationในHttpModuleผ่านHttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation "]ได้

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×