บทความนี้อธิบายการเปิดตัวโปรแกรมแก้ไขด่วน 3088956 ที่พร้อมใช้งานสําหรับ Microsoft .NET Framework 4.6 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่ชุดรวมอัปเดตการแก้ไขด่วนแก้ไข โปรดดูส่วน "ปัญหาที่ชุดรวมอัปเดตโปรแกรมแก้ไขด่วนนี้แก้ไข"
การแก้ไข
โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว อย่างไรก็ตาม มีวัตถุประสงค์เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นําไปใช้กับระบบที่พบปัญหานี้โดยเฉพาะเท่านั้นเมื่อต้องการแก้ไขปัญหานี้ ให้ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อรับโปรแกรมแก้ไขด่วน สําหรับรายชื่อทั้งหมดของหมายเลขโทรศัพท์ของฝ่ายบริการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่ายในการสนับสนุน โปรดเยี่ยมชมเว็บไซต์ของ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ในกรณีพิเศษ อาจมีการยกเลิกค่าใช้จ่ายสําหรับการโทรติดต่อฝ่ายสนับสนุนตามปกติ หากผู้เชี่ยวชาญฝ่ายสนับสนุนของ Microsoft ระบุว่าการอัปเดตเฉพาะจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนปกติจะใช้กับคําถามและปัญหาการสนับสนุนเพิ่มเติมที่ไม่มีคุณสมบัติสําหรับการอัปเดตเฉพาะที่สงสัย
ข้อมูลเพิ่มเติม
ข้อกำหนดเบื้องต้น
เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมี.NET Framework 4.6 ติดตั้งอยู่
ความต้องการในการเริ่มระบบใหม่
คุณต้องเริ่มระบบของคอมพิวเตอร์ใหม่หลังจากใช้โปรแกรมแก้ไขด่วนนี้ เราขอแนะนําให้คุณปิดโปรแกรมประยุกต์ทั้งหมดที่ใช้ .NET Framework ก่อนที่คุณนําโปรแกรมแก้ไขด่วนนี้ไปใช้
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
แพคเกจโปรแกรมแก้ไขด่วนนี้ไม่ได้แทนที่แพคเกจโปรแกรมแก้ไขด่วนที่ออกมาก่อนหน้านี้
ปัญหาที่ชุดรวมอัปเดตด่วนนี้แก้ไข
ปัญหาที่ 1ถ้าคุณมีเว็บไซต์ ASP.NET ที่ทํางานบนเวอร์ชัน 32 บิตของ .NET Framework 4.6 หรือ AMD64 ของแพลตฟอร์ม .NET Framework 4.6 ที่ปิดใช้งาน RyuJit คุณอาจพบการหยุดทํางานของ w3wp เนื่องจาก ThreadAbortException ที่ไม่ได้รับการจัดการ เมื่อเกิดการหยุดทํางาน คุณจะเห็นบันทึกเหตุการณ์ต่อไปนี้ใน Windows:
มีข้อยกเว้นที่ไม่สามารถจัดการได้เกิดขึ้นและกระบวนการถูกยุติการทํางานID แอปพลิเคชัน: [ApplicationID]ID กระบวนการ: [ProcessID]ข้อยกเว้น: System.Threading.ThreadAbortExceptionMessage: เธรดกําลังถูกยกเลิกStackTrace: ที่ System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtredObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
ปัญหาที่ 2สมมติว่าคุณมีไคลเอ็นต์ WCF ที่เชื่อมต่อกับบริการ WCF โดยใช้ WCF Routing Service ถ้าบริการสิ้นสุดทําให้เกิดข้อยกเว้นที่ไม่คาดคิดที่ไม่ใช่ชนิด FaultException หรือการกําหนดค่าการเปลี่ยนแปลง บริการการกําหนดเส้นทาง WCF อาจไม่กําหนดเส้นทางการร้องขอที่ตามมาไปยังบริการสิ้นสุดเมื่อปัญหานี้เกิดขึ้น คุณจะได้รับข้อยกเว้นต่อไปนี้:
System.ServiceModel.ProtocolException: ไม่สามารถใช้แชนเนลนี้เพื่อส่งข้อความเนื่องจากเซสชันเอาท์พุทถูกปิดโดยอัตโนมัติเนื่องจากการปิดระบบที่เซิร์ฟเวอร์เริ่มต้น ปิดใช้งานการปิดอัตโนมัติโดยการตั้งค่า DispatchRuntime.AutomaticInputSessionShutdown เป็นเท็จ หรือพิจารณาปรับเปลี่ยนโพรโทคอลปิดเครื่องด้วยเซิร์ฟเวอร์ระยะไกล
ข้อมูลการติดตามสแตก:ที่ System.ServiceModel.Channels.ServiceChannel.PrepareCall(การดําเนินการ ProxyOperationRuntime, Boolean oneway, ProxyRpc& rpc)ที่ System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin()at System.ServiceModel.Channels.ServiceChannel.BeginCall(String action, Boolean oneway, การดําเนินการ ProxyOperationRuntime, Object[] ins, การหมดเวลา TimeSpan, การเรียกกลับของ AsyncCallback, Object asyncState)ที่ System.ServiceModel.Channels.ServiceChannelProxy.InvokeBeginService(IMethodCallMessage methodCall, การดําเนินการ ProxyOperationRuntime)ที่ System.ServiceModel.Channels.ServiceChannelProxy.Invoke(ข้อความ IMessage) ที่ System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, ชนิด Int32)ที่ System.ServiceModel.Routing.IRequestReplyRouter.BeginProcessRequest(ข้อความ, AsyncCallback callback, Object state)ที่ System.ServiceModel.Routing.ClientFactory.RequestReplyClient.OnBeginOperation(ข้อความ, AsyncCallback callback, Object state)at System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.OperationAsyncResult.CallOperation()at System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.OperationAsyncResult. ctor(RoutingClientBase'1 parent, Message requestMessage, Transaction transaction, AsyncCallback callback, Object state)at System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.StartOperation(Message, Transaction transaction, AsyncCallback callback, Object state)at System.ServiceModel.Routing.ProcessRequestAsyncResult'1.StartProcessing()ที่ System.ServiceModel.Routing.ProcessRequestAsyncResult'1..ctor(RoutingService service, Message, AsyncCallback callback, Object state)at System.ServiceModel.Routing.RoutingService.BeginProcessRequest[TContract](Message message, AsyncCallback callback, Object state)at System.ServiceModel.Routing.RoutingService.System.ServiceModel.Routing.IRequestReplyRouter.BeginProcessRequest(Message message, AsyncCallback callback, object state)at AsyncInvokeBeginBeginProcessRequest(Object , Object[] , AsyncCallback , Object )at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeBegin(Object instance, การป้อนข้อมูล Object[] การเรียกกลับของ AsyncCallback, สถานะของวัตถุ) ปัญหา 3นี่คือการอัปเดตเพื่อสนับสนุนสัญลักษณ์ Lari ภาษาจอร์เจียใหม่ ประเทศจอร์เจียได้แนะนําสัญลักษณ์สกุลเงินใหม่สําหรับ Lari แต่ชื่อสกุลเงินจะไม่เปลี่ยนแปลง สัญลักษณ์สกุลเงินใหม่ได้ถูกเพิ่มไปยังมาตรฐาน Unicode ด้วย การปรับปรุงนี้ช่วยให้แน่ใจว่าสัญลักษณ์สกุลเงินที่ถูกต้องจะแสดงโดย.NET Framework ตามการตั้งค่าตําแหน่งที่ตั้งของระบบปัญหาที่ 4หากคอลเลกชัน Gen2 เกิดขึ้นระหว่างการโทร Parallel.ForEach คุณอาจพบปัญหาค้างเป็นเวลานานหลังจากที่คุณติดตั้ง Visual Studio 2015 หรือ .NET Framework 4.6 ที่ไม่มี Visual Studioความละเอียด:การอัปเดตนี้อัปเดตตัวเก็บขยะโดยการแก้ไขระบบหยุดทํางานที่เกิดจากปัญหานี้ปัญหาที่ 5หลังจากที่คุณติดตั้ง.NET Framework 4.6 วิธี DateTime.Parse และ Date.TryParse ทํางานไม่ถูกต้อง ปัญหานี้อาจเกิดขึ้นกับการตั้งค่า Culture ต่อไปนี้:
-
fi-FI
-
nb-NO
-
nb-SJ
-
sr-Cyrl-XK
-
sr-Latn-ME
-
sr-Latn-RS
-
sr-Latn-XK
ความละเอียด:การอัปเดตนี้เปิดใช้งาน DateTime.Parse และ Date.TryParse เพื่อให้ทํางานได้อย่างถูกต้องใน Cultures ที่ใช้ตัวคั่นวันที่และเวลาเดียวกันปัญหาที่ 6หลังจากที่คุณติดตั้ง .NET Framework 4.6 .NET Framework 4.6 ใช้คอมไพเลอร์ 64 บิตใหม่ที่เรียกว่า RyuJIT ในบางกรณี คอมไพเลอร์ใหม่จะสร้างรหัสที่ไม่ถูกต้องซึ่งทําให้เกิดลักษณะการทํางานที่คาดเดาไม่ได้หรือหยุดทํางาน ความละเอียด:การอัปเดตนี้แก้ไขปัญหาต่างๆ ในคอมไพเลอร์ RyuJIT หากแอปพลิเคชันยังคงทํางานตามปกติหลังจากติดตั้งการอัปเดตนี้ โปรดดูคําแนะนําการแก้ไขปัญหาโดยละเอียดเพิ่มเติมขั้นตอนเพิ่มเติม:หากพิจารณาแล้วว่า RyuJIT อาจเกี่ยวข้องกับปัญหาของคุณโดยทําตามขั้นตอนการแก้ไขปัญหาที่ลิงก์ โปรดบันทึกปัญหาที่ http://connect.microsoft.com ใส่รายละเอียดให้มากที่สุดในรายงาน และใส่รหัสเพื่อจําลองปัญหาขึ้นมาใหม่