Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Inleiding

In dit artikel beschreven hotfix-combinatiepakket 2996568 die beschikbaar is voor Microsoft .NET Framework 4.5, .NET Framework 4.5.1 en .NET Framework 4.5.2. Zie de sectie 'Meer informatie' voor meer informatie over de problemen die het hotfixcombinatiepakket wordt opgelost.

Dit hotfix-combinatiepakket worden de volgende besturingssystemen:

  • Windows Server 2008 R2 SP1

  • Windows 7 SP1

  • Windows Server 2008 SP2

  • Windows Vista SP2


Oplossing

Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter bedoeld om alleen het probleem te verhelpen dat in dit artikel wordt beschreven. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet.

Voor dit probleem kunt u contact opnemen met Microsoft Customer Support Services om de hotfix te verkrijgen. Een volledige lijst met telefoonnummers van Microsoft Customer Support Services en informatie over kosten van ondersteuning vindt u op de volgende Microsoft-website:

http://support.microsoft.com/contactus/?ws=supportOpmerking In speciale gevallen kunnen kosten die normaal aan ondersteuningsoproepen verbonden zijn, worden geannuleerd als een medewerker van Microsoft productondersteuning van mening is dat een specifieke update de oplossing van uw probleem is. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.

Meer informatie

Vereisten

Deze hotfix moet u de .NET Framework 4.5, .NET Framework 4.5.1 of .NET Framework 4.5.2 geïnstalleerd hebben.

Opnieuw opstarten

U moet de computer opnieuw opstarten nadat u deze hotfix als de bestanden waarin dit probleem optreedt worden gebruikt. Wij raden aan dat u alle .NET Framework-toepassingen sluiten voordat u deze hotfix toepast.

Informatie over het vervangen van hotfixes

Dit hotfix-pakket vervangt een eerder uitgebrachte hotfix-pakket.


















Problemen die met dit hotfix-combinatiepakket worden opgelost

Probleem 1

Deze hotfix lost de volgende twee threading problemen in System.IO.Packaging wanneer u de .NET Framework 4.5, .NET Framework 4.5.1 of .NET Framework 4.5.2.

  • Een impasse kan optreden wanneer u grote pakketten op afzonderlijke threads. System.IO.Packaging maakt gebruik van IsolatedStorage voor pakketten die groter dan 10 MB (Megabytes zijn). Wanneer twee of meer threads met grote pakketten, kan een impasse optreden, zelfs als de pakketten onafhankelijk zijn. De impasse bestaat uit twee threads. Een wacht in IsolatedStorageFile.Lock terwijl de andere nog in een andere methode van de klasse IsoloatedStorageFile . Dit probleem is opgelost door synchronisatie met System.IO.Packaging om te voorkomen dat het probleem in de IsolatedStorageFiletoe te voegen.

  • Uitzonderingen kunnen optreden wanneer u PackageProperties van pakketten die zijn geopend op afzonderlijke threads, ophalen zelfs als de pakketten onafhankelijk zijn. De meest voorkomende stacks met opgeroepen procedures die uit deze voortvloeien zijn als volgt: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()
    Dit probleem wordt veroorzaakt door een conflict op een interne netwerkbron en is opgelost door middel van elk pakket een kopie van die bron.


Probleem 2

Een toepassing voor Windows Presentation Foundation (WPF) kan een grote hoeveelheid geheugen gebruiken wanneer er veel aanvragen voor de UIAutomation -service worden ontvangen. Het geheugen behoort tot de objecten die afkomstig uit de naamruimte System.Threading zijn . Dit omvat System.Threading.CancellationTokenSource, System.Threading.TimerQueueTimer, System.Threading.Timeren meerdere gerelateerde klassen.

Dit zijn de objecten die zijn toegewezen voor WPF als WPF een aanvraag ontvangt voor de activiteit UIAutomation . Ze zijn uiteindelijk vrijgegeven totdat de time-outwaarde voor de aanvraag verstrijken (meestal drie minuten). Als de aanvragen snel komt, lijkt het alsof de toepassing geheugenlekkage, of gebruikt meer geheugen dan wat is redelijk (maar liefst 500 MB).

Dit probleem wordt opgelost door de objecten vrijgeven wanneer de aanvraag is voltooid, in plaats van het wachten op de time-out voor de deadline.

Probleem 3

In een WPF toepassing, wanneer u tekst invoert met behulp van de Koreaanse Input Method Editor (IME) wordt de eigenschap Text van een bewerkbare ComboBox niet gewijzigd goed in sommige gevallen.

Dit probleem kan verschillende symptomen vertonen en dat hangt af van hoe de toepassing (of de auteur van het besturingselement) de ComboBoxis geconfigureerd. Bijvoorbeeld:

  • Nadat u typt en tabblad opgeslagen (of de focus naar een ander besturingselement), wordt de weergegeven tekst van een ComboBox op een lege tekenreeks of op de waarde die het had voor het typen.

  • De functie TextSearch van een ComboBox werkt niet goed. Niet overeenkomt met het voorvoegsel dat u hebt opgegeven of het overeenkomt met een niet-gerelateerde item.

Dit probleem wordt opgelost door een wijziging van de logica die ten behoeve van de timing van de Koreaanse IME die enigszins van de andere IME's afwijkt.

Probleem 4

Nadat u een contact voor het uitvoeren van een bewerking slepen en neerzetten in een WPF toepassing gebruikt, wordt de volgende touch penbeweging genegeerd.

Dit probleem wordt opgelost door de interne toestand van de touch input handler herstellen wanneer de bewerking slepen en neerzetten voltooid is. Op deze manier berekenen het van de positie van de volgende touch beweging goed.

Probleem 5

Een nieuwe CustomTargetNameDictionary -implementatie kan eventueel belangrijke prestaties krijgen bij het werken met aangepaste IAuthenticationModulesworden ingeschakeld.

Opmerking Grote beveiligingsrisico's worden weergegeven als de code is niet bedoeld om thread-safe. De belangrijkste gedrag wijziging bevindt zich op de methoden PreAuthenticate en verifiëren . Eerder is gegarandeerd dat de code serie is uitgevoerd (een globale vergrendeling is genomen). In de nieuwe implementatie geen vergrendeling wordt genomen en de code van de klant moet de thread veiligheid garanderen.
Met de nieuwe implementatie kan bovendien de grootte van de PrefixLookup worden beheerd via het register.

De volgende registersleutels kunnen inschakelen en configureren van de maximale lengte van PrefixLookupworden gebruikt:

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

  • Configuratie van de lokale toepassing[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

Globale instellingen hebben voorrang op lokale instellingen. Globale en lokale instellingen kunnen worden gecombineerd. PrefixLookupMaxCount zal niet worden beïnvloed als de globale of lokale toepassing HighPerformance is ingesteld op DWORD 1.

Probleem 6

Stel dat u een toepassing uitvoert die is gebaseerd op het .NET Framework 4.5, .NET Framework 4.5.1 of .NET Framework 4.5.2. De toepassing genereert een uitzondering in een beheerde methode die is aangeroepen van systeemeigen code en een COM-interface is doorgegeven door de referentie. In dit geval de toepassing loopt vast.

Bijvoorbeeld: een toepassing die is geschreven in VB6 een C#-DLL wordt aangeroepen. Als de toepassing en het DLL-bestand gecompileerd in de release-modus wanneer een uitzondering is opgetreden in de C#-code, treedt een toegangsfout op en de toepassing loopt vast.

Probleem 7

Wanneer de workflow XAML gebaseerde projecten langer dan de standaardleasetijd (vijf minuten) van de externe objecten die zijn gedefinieerd door de taken voor het bouwen van de XAML, wordt een foutbericht van de volgende strekking weergegeven:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.XAML.targets(193,5): fout XC1000: XC1020: Build-fout opgetreden in de taak MSBuild XAML: ' Object ' / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' is of niet bestaat op de server is verbroken. "

Nadat u deze hotfix hebt toegepast, kunt u uw eigen leasetijd (in minuten) door het definiëren van de variabele met de naam XamlBuildTaskRemotingLeaseLifetimeInMinutes.

Als de omgevingsvariabele wordt ingesteld in een project-bestand voor MSBuild, hebt u de volgende informatie opnemen in het projectbestand:<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>
De Taaknaam in het volgende voorbeeld is MySetEnv. Het kan worden ingesteld op een willekeurige tekenreeks die geldig is voor namen van taken. In dit voorbeeld wordt de leasetijd ingesteld op 1.440 minuten (één dag) voordat het gebouw van het project en wordt ingesteld op null na het gebouw. Als er meerdere projecten waarvoor de leasetijd uitbreiden, moet elk project in deze configuratie.

Probleem 8

Wanneer u op een pagina terugsturen met AJAX, wordt soms het terugposten omgeleid naar een andere URL. Kunt u de RedirectLocation in een HttpModule via HttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation"].

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×