Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Wprowadzenie

W tym artykule opisano pakiet zbiorczy poprawek 2996568 dostępną dla programu Microsoft.NET Framework 4.5,.NET Framework 4.5.1 i.NET Framework 4.5.2. Aby uzyskać więcej informacji o problemach, które rozwiązuje pakiet zbiorczy poprawek zobacz sekcję "Więcej informacji".

Ten pakiet zbiorczy poprawek jest dostępna dla następujących systemów operacyjnych:

  • Windows Server 2008 R2 z dodatkiem SP1

  • Dodatek SP1 dla systemu Windows 7

  • Windows Server 2008 z dodatkiem SP2

  • Windows Vista z dodatkiem SP2


Rozwiązanie

Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem.

Aby rozwiązać ten problem, skontaktuj się z biurem obsługi klienta Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej firmy Microsoft oraz informacje o kosztach, odwiedź następującą witrynę sieci Web firmy Microsoft:

http://support.microsoft.com/contactus/?ws=supportUwaga W wyjątkowych przypadkach opłaty za połączenie z pomocą techniczną mogą zostać anulowane, jeśli specjalista firmy Microsoft zdecyduje że określona aktualizacja, może rozwiązać Twój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.

Więcej informacji

Wymagania wstępne

Aby zastosować tę poprawkę, musi mieć program.NET Framework 4.5,.NET Framework 4.5.1 lub.NET Framework 4.5.2 zainstalowany.

Wymagania dotyczące ponownego uruchomienia

Musisz ponownie uruchomić komputer po zastosowaniu tej poprawki, jeśli wszystkie pliki podlegające usterce są używane. Zaleca się zamknięcie wszystkich aplikacji.NET Framework, przed zastosowaniem tej poprawki.

Informacje dotyczące zastępowania poprawek

Ten pakiet poprawek nie zastępuje wcześniej wydanej poprawki.


















Ten pakiet zbiorczy poprawek rozwiązuje problemy

Problem 1

Ta poprawka rozwiązuje następujące dwa kwestiach wątkowości System.IO.Packaging podczas korzystania z programu.NET Framework 4.5,.NET Framework 4.5.1 lub.NET Framework 4.5.2.

  • Zakleszczenie może wystąpić podczas używania dużych opakowań w osobnych wątkach. System.IO.Packaging używa IsolatedStorage dla pakietów, które są większe niż 10 megabajtów (MB). Gdy dwa lub więcej wątków używania dużych opakowań, zakleszczenie może wystąpić, nawet jeśli pakiety są niezależne. Zakleszczenie obejmuje dwa wątki. Jeden jest Oczekiwanie w IsolatedStorageFile.Lock podczas, gdy inne czeka w innej metody klasy IsoloatedStorageFile . Ten problem jest rozwiązany przez dodanie synchronizacji do System.IO.Packaging , aby uniknąć problemu w IsolatedStorageFile.

  • Wyjątki mogą wystąpić podczas pobierania PackageProperties z pakietów, które są otwierane w osobnych wątkach, nawet jeśli pakiety są niezależne. Najczęściej stosy wywołań, które wynikają z tego są następujące: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()
    Ten problem jest spowodowana rywalizacją w zasobie udostępnionym wewnętrznych i zostanie rozwiązany przez nadanie każdego opakowania kopię tego zasobu.


Problem 2

Aplikacja Windows Presentation Foundation (WPF) może używać dużą ilość pamięci, po odebraniu wiele żądań usługi biblioteki UIAutomation . Pamięć należy do obiektów, które są z obszaru nazw System.Threading . Obejmuje to System.Threading.CancellationTokenSource, System.Threading.TimerQueueTimer, System.Threading.Timeri kilku innych klas pokrewnych.

Są to obiekty, które są przydzielane w imieniu WPF podczas WPF otrzymuje wniosek o działania biblioteki UIAutomation . Ukazania się ostatecznie do momentu wygaśnięcia terminu limit czasu dla żądania (zazwyczaj trzy minuty). Jeśli żądania przychodzące szybko, aplikacja wydaje się być przyczyną przecieków pamięci lub użycie większej ilości pamięci niż to, co jest uzasadnione (tyle, ile 500 MB).

Ten problem został rozwiązany przez zwalnianie obiektów, gdy żądanie zostanie zakończone, zamiast terminu limit czasu oczekiwania.

Problem 3

W aplikacji WPF podczas wprowadzania tekstu przy użyciu języka koreańskiego Input Method Editor (IME) właściwości tekstu edytowalnego składnika ComboBox nie jest zmieniany poprawnie w niektórych przypadkach.

Ten problem może wykazywać różne objawy, a która zależy od aplikacji (lub autor kontroli) ma konfiguracji składnika ComboBox. Na przykład:

  • Po wpisaniu i karta od obiektu (lub przenieść fokus do innego formantu), wyświetlany tekst ComboBox zostanie przywrócona do pustego ciągu lub wartość, która miała ona przed wpisaniem.

  • Funkcja Textsearchcombobox działa niepoprawnie. Nie pasuje prefiks, który został wprowadzony lub on pasuje do elementu niepowiązanych.

Ten problem został rozwiązany poprzez zmianę logiki, aby pomieścić chronometraż edytora IME języka koreańskiego, który różni się nieco od innych edytorów IME.

Problem 4

Po użyciu dotyk do wykonania operacji przeciągania i upuszczania w aplikacji WPF, następnym gest touch jest ignorowana.

Ten problem został rozwiązany po zakończeniu operacji przeciągania i upuszczania, przywracając stan wewnętrzny obsługi wprowadzania dotykowego. W ten sposób oblicza położenie następnego gestów poprawnie.

Wydanie 5

Nowej implementacji słowniku mogą być opcjonalnie włączone do uzyskania znaczących wydajność podczas pracy z niestandardowego IAuthenticationModules.

Uwaga Główne zagrożenia bezpieczeństwa są wyświetlane, jeśli kod nie jest przeznaczony do wątków. Zmiana zachowania głównych znajduje się na PreAuthenticate i uwierzytelniania metody. Wcześniej stanowi gwarancję, że kod był wykonywany pojedynczo (globalne blokady została podjęta). W nowej implementacji blokada nie jest pobierana, a kod odbiorcy muszą gwarantować bezpieczeństwo wątków.
Ponadto z nowej implementacji, rozmiar pamięci podręcznej PrefixLookup może być kontrolowane za pośrednictwem rejestru.

Następujące klucze rejestru można włączyć i skonfigurować maksymalną długość PrefixLookup:

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

  • Konfiguracja aplikacji lokalnych[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

Globalne ustawienia mają pierwszeństwo przed ustawieniami aplikacji lokalnych. Ustawienia aplikacji globalnym i lokalnym mogą być mieszane. PrefixLookupMaxCount nie będzie wpływu, jeśli ustawienie wysokowydajny aplikacji globalny lub lokalny jest ustawiona na wartość DWORD 1.

Problem 6

Załóżmy, że uruchomienie aplikacji, która jest oparta na.NET Framework 4.5,.NET Framework 4.5.1 lub.NET Framework 4.5.2. Aplikacja zgłasza wyjątek w metodzie zarządzanych, która została wywołana z kodu macierzystego i został przekazany do interfejsu COM poprzez odniesienie. W tej sytuacji może wystąpić awaria aplikacji.

Na przykład: aplikacja, która jest napisany w VB6 wywołuje DLL języka C#. Jeśli aplikacja i biblioteki DLL są kompilowane w trybie release, gdy wyjątek w kodzie języka C#, występuje błąd naruszenia zasad dostępu i awarie aplikacji.

Wydanie 7

Projekty oparte na języku XAML przepływu pracy trwać dłużej niż domyślny czas dzierżawy (pięć minut) zdalnego obiektów, które są definiowane przez zadań dla budynku XAML, pojawi się komunikat o błędzie podobny do następującego:

C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\Microsoft.XAML.TARGETS(193,5): błąd XC1000: XC1020: Wystąpił błąd kompilacji w zadanie programu XAML MSBuild: ' obiektu ' / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' został odłączony lub nie istnieje na serwerze. "

Po zastosowaniu tej poprawki można zdefiniować własne czas dzierżawy (w minutach) poprzez określenie zmiennej środowiskowej o nazwie XamlBuildTaskRemotingLeaseLifetimeInMinutes.

Aby ustawić zmienną środowiskową w pliku programu project dla programu MSBuild, należy uwzględnić następujące informacje w pliku projektu:<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>
Nazwa zadania w tym przykładzie jest MySetEnv. Można ustawić dowolny ciąg, który jest prawidłowy dla nazwy zadań. W tym przykładzie ustawia czas trwania dzierżawy na 1440 minut (jeden dzień) przed tworzenia projektu i ustawia go na null po budynku. Jeśli istnieje wiele projektów, które wymaga, aby przedłużyć czas dzierżawy, każdy projekt musi tej konfiguracji.

Problem 8

Korzystając z technologii AJAX odświeżenie strony na stronie, czasami ogłaszania wstecznego jest przekierowywany do innego adresu URL. Można uzyskać RedirectLocation w HttpModule poprzez HttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation"].

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×