31 lipca 2020 r. — skumulowana aktualizacja KB4562899 programu .NET Framework 3.5 i 4.8 dla systemu Windows 10 w wersji 2004

Dotyczy
.NET

Uwaga

  • Data wydania:
    31 lipca 2020 r.
  • Wersja:
    Program .NET Framework 3.5 i 4.8

Aktualizacja z 31 lipca 2020 r. dla systemu Windows 10 w wersji 2004 zawiera skumulowane ulepszenia niezawodności w programach .NET 3.5 i 4.8. Zalecamy zastosowanie tej aktualizacji w ramach rutynowych rutynowych czynności konserwacyjnych. Przed zainstalowaniem tej aktualizacji zobacz sekcje Wymagania wstępne i Wymagania ponownego uruchomienia .

Ulepszenia w zakresie jakości i niezawodności

CLR1 - Zmiana w programie .NET Framework 4.8 spowodowała regresję niektórych scenariuszy EnterpriseServices, w których jednowątkowy obiekt mieszkania może być traktowany jako wielowątkowy apartament i prowadzić do awarii blokowania. Ta zmiana teraz poprawnie identyfikuje jednowątkowe obiekty mieszkalne jako takie i pozwala uniknąć tego błędu.
- Rozwiązuje problem w zespołach z danymi profilu IBC, powodujący awarię procesów roboczych Ngen i powrót do pełnych obrazów natywnych.
- Rozwiązuje rzadkie awarie, które mogą wystąpić podczas przerywania dostarczania wątku.
SQL - SqlBulkCopy.WriteToServer może spowodować, że transakcje z tabelami SQL w pamięci zakończą się niepowodzeniem. Klientowi może zostać wyświetlony wyjątek z komunikatem "Limit czasu wykonywania wygasł. Przekroczono limit czasu, który upłynął przed zakończeniem operacji lub serwer nie odpowiada". Obiekt SqlBulkCopy.WriteToServer wysyłał token uwagi (komunikat anulowania) po wysłaniu danych do programu SQL Server, co powodowało, że serwer przerywał transakcję dla tabel w pamięci.
ASP.NET - Używaj skrótów zgodnych ze standardem FIPS w ASP.Net danych telemetrycznych.
- Rozwiązuje problem polegający na tym, że wartość "Nieokreślone" nie była dozwoloną wartością w konfiguracji atrybutu "cookieSameSite" w sekcjach uwierzytelniania formularzy i konfiguracji stanu sesji.
WPF2 - Rozwiązuje problem polegający na tym, że sprawdzanie pisowni jest włączone w WPF TextBox lub RichTextBox, wyrazy takie jak "etc.", "e.g." są identyfikowane jako błędy pisowni.
- Rozwiązuje problem polegający na tym, że niektóre aplikacje WPF obsługujące Per-Monitor, które działają w środowisku .NET 4.8, mogą czasami napotkać awarię w przypadku exceptionSystem.ComponentModel.Win32Exception.
- Rozwiązuje problem polegający na tym, że element TextBlock zmienia układ (podejmuje różne decyzje dotyczące podziału wiersza) podczas renderowania i testu trafień w porównaniu z pomiarem. Objawy obejmują brakujący tekst i awarie FailFast podczas programowego przetwarzania tekstu.
- Rozwiązuje problem z błędem wątku renderowania powodowanym przez HostVisual odłączający obiekt docelowy w niewłaściwym wątku.
- Rozwiązuje problem z zawieszaniem się podczas przewijania widoku TreeView, którego drzewo jest niejednorodne, w tym sensie, że elementy podrzędne danego węzła zarządzają poddrzewami, których rozmiary są zupełnie inne.
— Rozwiązuje problem związany z awarią, która może wystąpić podczas zamykania etykietki narzędzia, która jest ponownie zamykana przez kod użytkownika.
- Gdy HwndHost opuszcza drzewo wizualne, tworzony jest ślad stosu. Jest to kosztowne i zwykle niepotrzebne. Logika jest teraz zmieniana, aby tworzyć śledzenie stosu tylko wtedy, gdy wystąpią nietypowe warunki.
- Rozwiązuje przeciek pamięci w elemencie System.Speech.SpeechSynthesizer.
- Polecenie Kopiuj DataGrid zgłasza wyjątek, jeśli schowek systemowy jest zablokowany przez inny proces. Spowoduje to awarię, ponieważ zwykle nie ma kodu aplikacji na stosie, który mógłby przechwycić wyjątek. Zachowanie pola tekstowego (i innych aplikacji, takich jak Notatnik, Word, przeglądarki) w tej sytuacji polega na cichej awarii — nic nie jest kopiowane do schowka, ale bez wyjątku. Aplikacja WPF może teraz wyrazić zgodę na to zachowanie, ustawiając appSettings<>add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/></appSettings>w <swoim pliku app.config.
- Rozwiązuje problem podczas konstruowania modelu wewnętrznego dla dokumentu FixedPage. Część tekstu była wyświetlana w niewłaściwej kolejności na potrzeby operacji edycji, takich jak zaznaczanie czy kopiowanie/wklejanie.
Program WCF3 - W przypadku używania nazwy użytkownika systemu Windows UPN o formacie podobnym do username@dns.domain we właściwości nazwy użytkownika elementu NetworkCredential podczas korzystania z elementu NetTcpBinding lub NetNamedPipeBinding, funkcja WCF nieprawidłowo podzieli nazwę użytkownika i domenę dns.domain, umieszczając je we właściwościach UserName i Domain. Jest to nieprawidłowe w niektórych scenariuszach i może spowodować niepowodzenie uwierzytelniania. Ta poprawka usuwa modyfikację poświadczeń podczas korzystania z nazwy użytkownika UPN. Modyfikację można ponownie włączyć, ustawiając wartość AppSetting "wcf:enableLegacyUpnUsernameFix" na true.
Biblioteki sieciowe - Rozwiązuje przeciek pamięci w obiekcie HttpListener.
Formularze wygranej - Rozwiązuje problem ze stanem dostępności DataGridView IsReadOnly: Narrator i inne narzędzia ułatwień dostępu odpowiednio informują o stanie komórki tylko do odczytu.
- Rozwiązuje problem z regresją w programie .NET Framework 4.8, gdy aplikacje używające typu komórek DataGridView ComboBox, które wybrały ułatwienia dostępu poziomu 3, mogą doświadczać sporadycznych awarii podczas edytowania komórek.
- Rozwiązuje problem z kodem weryfikacji sygnatury czasowej RFC3161 ClickOnce.
Ulepszenia ułatwień dostępu w formularzach WinForms W tej wersji dodajemy nowe ulepszenia ułatwień dostępu, na które może włączyć się Twoja aplikacja. Te zmiany są domyślnie wyłączone. Aplikacje, które zgadzają się na funkcje ułatwień dostępu wprowadzone w .NET 4.8 i starszych, mogą dodać następujący przełącznik zgodności do pliku konfiguracyjnego aplikacji:
"Switch.UseLegacyAccessibilityFeatures.4=false"
W szczególności, jeśli aplikacja jest przeznaczona dla platformy .NET 4.8, dodaj następującą sekcję AppContextSwitchOverrides:
<?xml version="1.0" encoding+"utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.8"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.4=false" />
</runtime>
</configuration>
Jeśli aplikacja jest przeznaczona dla starszej wersji platformy i korzysta z wcześniej wydanych zestawów funkcji ułatwień dostępu, dodaj pojedynczy "Switch.UseLegacyAccessibilityFeatures.4=false" przełącznik do istniejącej AppContextSwitchOverrides sekcji:
<?xml version="1.0" encoding+"utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.7"/>
</startup>
<runtime>
<!-- AppContextSwitchOverrides value attribute is in the form of key1=true\|false;key2=true\|false -->
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false\|Switch.UseLegacyAccessibilityFeatures.2=false\|Switch.UseLegacyAccessibilityFeatures.3=false\|Switch.UseLegacyAccessibilityFeatures.4=false"/>
</runtime>
</configuration>
Ulepszenia ułatwień dostępu w formularzach WinForms zawarte w tej wersji to:- Rozwiązuje problem z informowaniem czytników zawartości ekranu o stanie rozwiniętych/zwijanych elementów i kategorii kontrolki PropertyGrid.
- Zaktualizowano dostępne wzorce kontrolki siatki właściwości i jej wewnętrznych elementów.
- Zaktualizowano nazwy wewnętrznych elementów kontrolki siatki właściwości z ułatwieniami dostępu, tak aby były poprawnie odczytywane przez czytnik zawartości ekranu.
- Rozwiązuje problem prostokątnych właściwości ułatwień dostępu dla kontrolek PropertyGridView
- Umożliwia czytnikom zawartości ekranu poprawne informowanie o stanie rozwiniętej/zwiniętej komórki pola kombi DataGridView.

         1 środowisko uruchomieniowe języka wspólnego (CLR)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation

Znane problemy z tą aktualizacją

Aplikacje Windows Presentation Framework (WPF), które używają dwóch lub więcej elementów HostVisual należących do wspólnego wątku, gdzie oba elementy HostVisual są proszone o odłączenie od wizualnego celu mniej więcej w tym samym czasie, poczta kończy się niepowodzeniem z następującym błędem:

Typ wyjątku: System.COMException
Komunikat: UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
Stos wywołań: górna ramka to System.Windows.Media.Composition.DUCE+Channel.SyncFlush()

Obejścia problemów

Tę problematyczną poprawkę można wyłączyć, ustawiając przełącznik AppContext "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" na wartość true, przy użyciu jednej z opisanych tutaj metod.  Powoduje to narażenie aplikacji na pierwotny błąd, dlatego należy usunąć przełącznik po opublikowaniu poprawki w ramach nadchodzącej aktualizacji.

Obejście 1

• Dodaj następujący wpis do pliku app.config, aby wyłączyć problematyczną poprawkę w jednej aplikacji.

        <runtime>
     <AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</czas pracy>

Należy pamiętać, że jeśli konfiguracja aplikacji zawiera już wpis dla <parametru AppContextSwitchOverrides>, należy dodać nowe ustawienie w ramach tego wpisu, oddzielone od innych przełączników średnikiem:

   <AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>

Obejście 2

• Zastosuj następujący podklucz rejestru, aby wyłączyć problematyczną poprawkę dla wszystkich aplikacji WPF na komputerze.
 Ostrzeżenie
Niepoprawne zmodyfikowanie rejestru przy użyciu edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Ich usunięcie może wymagać ponownego zainstalowania systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Zmodyfikuj rejestr na własne ryzyko.

Lokalizacja: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
Nazwa: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
Typ: Ciąg
Wartość: true

Należy pamiętać, że w 64-bitowych systemach operacyjnych również trzeba zastosować podklucz rejestru o tej samej nazwie, typie i wartości w lokalizacji: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\

Rozwiązanie

Pracujemy nad rozwiązaniem i udostępnimy aktualizację w następnej wersji.
 

Jak uzyskać i zainstalować aktualizację

Zainstaluj tę aktualizację

Kanał wersji Dostępne Następny krok
Usługa Windows Update i Microsoft Update Tak Aby pobrać i zainstalować tę aktualizację, przejdź do ustawień>,aktualizacji & zabezpieczeń>Windows Update, a następnie wybierz pozycję Sprawdź aktualizacje.
Wykaz usługi Microsoft Update Tak Aby uzyskać autonomiczny pakiet tej aktualizacji, przejdź do witryny internetowej Wykaz usługi Microsoft Update.
Program Windows Server Update Services (WSUS) Nie Tę aktualizację można zaimportować do programu WSUS ręcznie. Instrukcje znajdziesz w wykazie usługi Microsoft Update.

Informacje o plikach

Aby poznać listę plików zawartych w tej aktualizacji, pobierz informacje o plikach dla aktualizacji skumulowanej.

Wymagania wstępne

Aby zastosować tę aktualizację, musisz mieć zainstalowany program .NET Framework 3.5 lub 4.8.

Wymóg ponownego uruchomienia

Jeśli są używane jakiekolwiek pliki, których dotyczy problem, należy ponownie uruchomić komputer po zastosowaniu tej aktualizacji. Zalecamy zamknięcie wszystkich aplikacji opartych na platformie .NET Framework przed zastosowaniem tej aktualizacji.

Jak uzyskać pomoc i obsługę techniczną dla tej aktualizacji