Ten artykuł zawiera opis 3088956 zbiorczych poprawek dostępnych dla .NET Framework 4.6 firmy Microsoft. Aby uzyskać więcej informacji o problemach, które zostały rozwiązane przez pakiet zbiorczy poprawek, zobacz sekcję "Problemy związane z tym pakietem zbiorczym poprawek".
Rozwiązanie
Obsługiwana poprawka jest teraz dostępna od firmy Microsoft. Jednak jego celem jest poprawienie tylko problemu opisanego w tym artykule. Zastosuj ją tylko do systemów, w których występuje ten konkretny problem.Aby rozwiązać ten problem, skontaktuj się z działem obsługi klienta firmy Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów usług obsługi klienta firmy Microsoft oraz informacje na temat kosztów pomocy technicznej, odwiedź następującą witrynę internetową firmy Microsoft:
http://support.microsoft.com/contactus/?ws=supportUwaga W specjalnych przypadkach opłaty, które są zwykle naliczane za połączenia z pomocą techniczną, mogą zostać anulowane, jeśli pomoc techniczna firmy Microsoft Professional ustali, że konkretna aktualizacja rozwiąże problem. Typowe koszty pomocy technicznej będą miały zastosowanie do dodatkowych pytań dotyczących pomocy technicznej i problemów, które nie kwalifikują się do określonej aktualizacji.
Więcej informacji
Wymagania wstępne
Aby zastosować tę poprawkę, musisz mieć zainstalowany .NET Framework 4.6.
Wymaganie ponownego uruchomienia
Jeśli są używane jakiekolwiek pliki, których dotyczy problem, musisz ponownie uruchomić komputer po zastosowaniu tej poprawki. Zalecamy zamknięcie wszystkich aplikacji opartych na .NET Framework przed zastosowaniem tej poprawki.
Informacje dotyczące zastępowania poprawek
Ten pakiet poprawek nie zastępuje wcześniej wydanego pakietu poprawek.
Problemy z poprawkami tego pakietu zbiorczego poprawek
Problem 1Jeśli masz witrynę internetową ASP.NET uruchomioną na 32-bitowej wersji .NET Framework 4.6 lub AMD64 platformy .NET Framework 4.6 z wyłączoną wersją RyuJit, może wystąpić awaria w3wp z powodu nieobsługiwanego threadabortException. Po awarii możesz zobaczyć następujący dziennik w dzienniku zdarzeń systemu Windows:
Wystąpił nieobsługiwany wyjątek i proces został zakończony.Identyfikator aplikacji: [ApplicationID]Identyfikator procesu: [ProcessID]Exception: System.Threading.ThreadAbortExceptionMessage: Thread was being aborted.StackTrace: at 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(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
Problem 2Załóżmy, że masz klienta WCF łączącego się z usługą WCF przy użyciu usługi routingu WCF. Jeśli usługa końcowa wywoła nieoczekiwany wyjątek, który nie jest typem FaultException ani zmian w konfiguracji, usługa routingu WCF może nie kierować kolejnych żądań do usługi końcowej.W przypadku wystąpienia tego problemu występuje następujący wyjątek:
System.ServiceModel.ProtocolException: Tego kanału nie można już używać do wysyłania wiadomości, ponieważ sesja wyjściowa została automatycznie zamknięta z powodu zamknięcia zainicjowanego przez serwer. Wyłącz automatyczne zamykanie, ustawiając wartość DispatchRuntime.AutomaticInputSessionShutdown na fałsz lub rozważ zmodyfikowanie protokołu zamykania z serwerem zdalnym.
Stack trace information:at System.ServiceModel.Channels.ServiceChannel.PrepareCall(ProxyOperationRuntime operation, Boolean oneway, ProxyRpc& rpc)at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.Begin()at System.ServiceModel.Channels.ServiceChannel.BeginCall(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, TimeSpan timeout, AsyncCallback callback, Object asyncState)at System.ServiceModel.Channels.ServiceChannelProxy.InvokeBeginService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)at System.ServiceModel.Routing.IRequestReplyRouter.BeginProcessRequest(Message message, AsyncCallback callback, Object state)w: System.ServiceModel.Routing.ClientFactory.RequestReplyClient.OnBeginOperation(Message message, Wywołanie zwrotne AsyncCallback, stan obiektu)w witrynie System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.OperationAsyncResult.CallOperation()w: System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.OperationAsyncResult.. ctor(RoutingClientBase'1 nadrzędny, Message requestMessage, Transaction transaction, AsyncCallback callback, Object state)at System.ServiceModel.Routing.ClientFactory.RoutingClientBase'1.BeginOperation(Message message, Transaction transaction, AsyncCallback callback, Object state)at System.ServiceModel.Routing.ProcessRequestAsyncResult'1.StartProcessing()w: System.ServiceModel.Routing.ProcessRequestAsyncResult'1..ctor(RoutingService service, Message message, Wywołanie zwrotne AsyncCallback, stan obiektu)w witrynie 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)w: AsyncInvokeBeginBeginProcessRequest(Object , Object[] , AsyncCallback , Object )at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeBegin(Object instance, Object[] inputs, AsyncCallback callback, Object state) Problem 3Jest to aktualizacja obsługi nowego symbolu Georgian Lari. Kraj Gruzji wprowadził nowy symbol waluty dla Lari, ale nazwa waluty nie zmienia się. Nowy symbol waluty został również dodany do standardu Unicode. Ta aktualizacja gwarantuje, że .NET Framework wyświetli prawidłowy symbol waluty na podstawie ustawień regionalnych systemu.Problem 4Jeśli kolekcja gen2 występuje podczas wywołań Parallel.ForEach, po zainstalowaniu programu Visual Studio 2015 lub .NET Framework 4.6 bez programu Visual Studio mogą wystąpić długie zawieszenia.Rozwiązanie:Ta aktualizacja aktualizuje moduł modułu zbierającego śmieci, rozwiązując zawieszanie się systemu spowodowane przez ten problem.Problem 5Po zainstalowaniu .NET Framework 4.6 metody DateTime.Parse i Date.TryParse nie działają poprawnie. Ten problem może występować w następujących ustawieniach kultury:
-
fi-FI
-
nb-NIE
-
nb-SJ
-
sr-Cyrl-XK
-
sr-Latn-ME
-
sr-Latn-RS
-
sr-Latn-XK
Rozdzielczość:Ta aktualizacja umożliwia poprawne działanie funkcji DateTime.Parse i Date.TryParse w kulturach używających tego samego separatora daty i godziny.Problem 6Po zainstalowaniu .NET Framework 4.6 .NET Framework 4.6 używa nowego kompilatora 64-bitowego o nazwie RyuJIT. W niektórych przypadkach nowy kompilator generuje niepoprawny kod, który powoduje nieprzewidywalne zachowanie lub awarie. Rozwiązanie:Ta aktualizacja rozwiązuje wiele problemów w kompilatorze RyuJIT. Jeśli aplikacja nadal zachowuje się nieprzewidywalnie po zainstalowaniu tej aktualizacji, zobacz dodatkowe szczegółowe wskazówki dotyczące rozwiązywania problemów.Dalsze kroki:Jeśli okaże się, że RyuJIT może być zaangażowany w twój problem, wykonując kroki rozwiązywania problemów podane na linku, zarejestruj problem na stronie http://connect.microsoft.com. Uwzględnij jak najwięcej szczegółów w raporcie, a także kod, aby odtworzyć problem.