4.5.1 ve 4.5.2 Vista SP2, Windows Server 2008 SP2, Windows 7 SP1 ve Windows Server 2008 R2 SP1 üzerinde.NET Framework 4.5 için düzeltme toplaması 2996568

Giriş

Bu makalede, Microsoft.NET Framework 4.5, .NET Framework 4.5.1 ve 4.5.2 .NET Framework için kullanılabilir düzeltme toplaması 2996568 açıklar. Düzeltme Toplaması çözümlenen sorunlar hakkında daha fazla bilgi için "Ek bilgi" bölümüne bakın.

Bu düzeltme toplaması, aşağıdaki işletim sistemlerinde kullanılabilir:

  • Windows Server 2008 R2 SP1

  • Windows 7 SP1

  • Windows Server 2008 SP2

  • Windows Vista SP2


Çözüm

Artık Microsoft tarafından desteklenen bir düzeltme sağlanmaktadır. Ancak, bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Yalnızca bu özel sorunla karşılaşmış olan sistemlere uygulayın.

Bu sorunu çözmek için düzeltmeyi edinmek üzere Microsoft Müşteri Destek Hizmetleri'ne başvurun. Microsoft Müşteri Destek Hizmetleri telefon numaralarının ve destek ücretleriyle ilgili bilgi tam listesi için aşağıdaki Microsoft Web sitesini ziyaret edin:

http://support.microsoft.com/contactus/?ws=supportNot: Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

Daha fazla bilgi

Önkoşullar

Bu düzeltmeyi uygulamak için.NET Framework 4.5, .NET Framework 4.5.1 veya .NET Framework 4.5.2 yüklü olması gerekir.

Yeniden başlatma gereksinimi

Etkilenen herhangi bir dosya kullanılıyorsa, bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekir. Bu düzeltmeyi uygulamadan önce tüm .NET Framework tabanlı uygulamaları kapatmanızı öneririz.

Düzeltme değiştirme bilgileri

Bu düzeltme paketi paketi daha önce yayımlanmış bir düzeltmenin yerini almaz.


















Bu düzeltme toplaması giderir sorunları

Sorun 1

Bu düzeltmenin.NET Framework 4.5, .NET Framework 4.5.1 veya .NET Framework 4.5.2 kullandığınızda aşağıdaki iki iş parçacığı sorunlarından System.IO.Packaging giderir.

  • Ayrı bir iş parçacığı üzerinde büyük paketleri kullandığınızda bir kilitlenme oluşabilir. System.IO.Packaging IsolatedStorage 10 megabayttan (MB) daha büyük paketler için kullanır. İki veya daha fazla iş parçacığı büyük paketleri kullandığınızda, paketleri bağımsız olsa bile bir kilitlenme oluşabilir. İki iş parçacığı kilitlenme içerir. Başka bir yöntemi IsoloatedStorageFile sınıfının diğer bekliyor iken bir IsolatedStorageFile.Lock içinde bekliyor. System.IO.Packaging IsolatedStorageFilesorunu önlemek için eşitleme ekleyerek bu sorun giderilmiştir.

  • Paketleri bağımsız olsa bile, PackageProperties ayrı iş parçacıkları üzerinde açılan paketleri almak özel durumlar ortaya çıkabilir. Buradan çıkabilecek en yaygın çağrı yığınları aşağıdaki gibidir: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()
    Bu sorun, paylaştırılan kaynak üzerindeki bir iç Çekişme neden olur ve her paket, kaynak bir kopyasını vererek çözümlenir.


Sorun 2

UIAutomation hizmet için birçok istek aldığında, Windows Presentation Foundation (WPF) uygulaması büyük miktarda bellek kullanabilir. System.Threading ad alanındaki nesneler için bellek aittir. Bu, System.Threading.CancellationTokenSource, System.Threading.TimerQueueTimer, süre System.Threading.Timerve diğer ilgili birçok sınıf içerir.

Bunlar, WPF UIAutomation etkinliği için bir istek aldığında, WPF adına tahsis nesnelerdir. İstek zaman aşımı tarihi (genellikle üç dakika) süresi doluncaya kadar sonunda yayımlanır yayımlanmaz. İstekleri hızlı bir şekilde ulaşması durumunda, uygulamanın bellek sızması olabilir gibi görünüyor veya miktardan daha fazla bellek (katı kadar 500 MB) makul kullanmaktır.

İstek tamamlandığında, zaman aşımı tarihi beklemek yerine, nesnelerin serbest bırakarak bu sorun giderilmiştir.

Sorun 3

Kore dili Giriş Yöntemi Düzenleyicisi (IME) kullanarak metin girdiğinizde bir WPF uygulamasında düzenlenebilir bir ComboBox ' ın Text özelliği doğru olarak bazı durumlarda değişmez.

Bu sorun, farklı belirtiler görülebilir ve, nasıl ComboBoxuygulama (veya denetim yazarı) yapılandırdığına bağlıdır. Örneğin:

  • Yazın ve hemen sekme (veya odağı başka bir denetime taşımak sonra), ComboBox görüntülenen metni yazmadan önce vardı değeri veya boş dize döner.

  • ComboBox ' ın TextSearch özelliğini yanlış davranır. Girilmiş olan önek eşleşmiyor veya ilgisiz bir öğe eşleştirir.

Bu sorun, diğer IME'ler biraz farklıdır Kore dili IME zamanlamasını karşılamak için mantık maddeyi düzeltme tarafından çözümlenir.

Sorun 4

WPF uygulamasında bir Sürükle ve bırak işlemi gerçekleştirmek için bir dokunmatik kullandıktan sonra sonraki dokunma hareketi göz ardı edilir.

Sürükle ve bırak işlemi tamamlandığında, dokunmatik giriş işleyicisi iç durumu geri yükleyerek bu sorunu giderilmiştir. Bu şekilde, onu sonraki dokunma hareketi konumunu doğru hesaplar.

Sorun 5

Yeni bulunan bir uygulama, isteğe bağlı olarak, özel IAuthenticationModulesile çalışırken önemli bir performans elde etmek için etkinleştirilebilir.

Not: Kod parçacıklarını tasarlanmamıştır önemli güvenlik riskleri görünür. Önemli davranış değişikliği PreAuthenticate ve kimlik doğrulama yöntemleri üzerinde bulunur. Kod seri olarak yürütülmekte olan önceden garanti (genel bir kilit alınmıştır). Yeni uygulama kilit alınır ve müşteri kodu iş parçacığı güvenliği garanti gerekir.
Ayrıca, yeni uygulamasıyla PrefixLookup önbellek boyutu kayıt defteri denetlenebilir.

Aşağıdaki kayıt defteri anahtarlarını etkinleştirmek ve PrefixLookupen fazla uzunluğu yapılandırmak için kullanılabilir:

  • Genel yapılandırma[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319]"System.Net.AuthenticationManager.HighPerformance"=dword:00000001
    "System.Net.AuthenticationManager.PrefixLookupMaxCount"=dword:00010000

  • Yerel uygulama yapılandırması[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

Genel ayarlar, yerel uygulama ayarları üzerinde önceliğe sahiptir. Global ve yerel uygulama ayarları karışabilir. Global veya yerel uygulama HighPerformance ayarı DWORD 1olarak ayarlanırsa, PrefixLookupMaxCount etkilenmez.

Sorun 6

.NET Framework 4.5, .NET Framework 4.5.1 veya 4.5.2 .NET Framework tabanlı bir uygulama çalıştırmak varsayalım. Uygulamanın yerel koddan çağrıldı ve COM arabirimi başvuruyla geçirildi yönetilen bir yöntemin içinde bir istisna atar. Bu durumda, uygulama çökebilir.

Örneğin: C# DLL içinde VB6 yazılmış bir uygulama çağırır. C# kod bir özel durum oluştuğunda uygulama ve DLL sürüm modunda derlenmişse, erişim ihlali oluşuyor ve uygulama çöker.

7 sorun

XAML tabanlı iş akışı projeleri XAML oluşturma görevleri tarafından tanımlanan uzaktan nesnelerinin varsayılan kira süresi (beş dakika) daha uzun süre götürdüğünüzde, aşağıdakine benzer bir hata iletisi alırsınız:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.xaml.targets(193,5): hata XC1000: XC1020: yapı hatası oluştu XAML MSBuild görevi: ' Object ' / cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' kesildi veya sunucuda yok.'

Bu düzeltmeyi uyguladıktan sonra XamlBuildTaskRemotingLeaseLifetimeInMinutesadında bir ortam değişkeni tanımlayarak, kendi kira süresi (dakika) tanımlayabilirsiniz.

İçin MSBuild proje dosyasında ortam değişkeni ayarlamak için proje dosyanıza aşağıdaki bilgileri dahil etmek zorunda:<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>
Bu örnekte GörevAdı MySetEnvolur. Görev adları için geçerli olan herhangi bir dizeye ayarlanabilir. Bu örnek için 1.440 dakikaya (bir gün) projesinin yapı önce kira süresini ayarlar ve sonra yapı null olarak ayarlar. Her proje, kira süresini uzatmak için gerektiren birden fazla proje varsa, bu yapılandırma gerekir.

Sayı 8

Bazen bir sayfa AJAX geri gönderme kullandığınızda, geri gönderme başka bir URL'ye yeniden yönlendirilir. RedirectLocation bir HttpModule içinde elde edebilirsiniz HttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation"].

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×