4.5.2, 4.5.1 ve 4.5 Windows .NET Framework düzeltme toplaması 2974336 kullanılabilir

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 2974336
Giriş
Bu makalede, Microsoft .NET Framework 4.5.2, 4.5.1 Microsoft .NET Framework ve Microsoft.NET Framework 4.5 2974336 düzeltme toplaması açıklanır. 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 Service Pack 1 (SP1)
  • Windows Server 2008 Service Pack 2 (SP2)
  • Windows 7 Service Pack 1 (SP1)
  • Windows Vista SP2
Daha fazla bilgi

Düzeltme Bilgileri

Desteklenen bir düzeltme Microsoft'tan edinilebilir. 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:Not Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu belirlerse, normal 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.

Önkoşullar

Bu düzeltmeyi uygulamak için .NET Framework 4.5.2, 4.5.1 Microsoft .NET Framework veya Microsoft.NET Framework 4.5 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ı uygulamalardan çıkmanız önerilir.

Düzeltme değiştirme bilgileri

Bu düzeltme paketi aşağıdaki paketleri önceden yayımlanmış bir düzeltmenin yerini alır.
KB makalesinin numarası. Açıklama
29083834.5.1 Windows .NET Framework düzeltme toplaması 2908383 kullanılabilir
29253824.5.1 Windows .NET Framework düzeltme toplaması 2925382 kullanılabilir
29376764.5.1 Windows .NET Framework düzeltme toplaması 2937676 kullanılabilir
Bu düzeltme toplaması giderir sorunları
Bu düzeltme toplaması aşağıdaki bölümde açıklanan sorunları giderir. "Düzeltme değiştirme bilgileri" bölümünde listelenen Microsoft Bilgi Bankası makalelerinde bu sorunlar hakkında daha fazla bilgi için bkz.

Giderilen sorunlar


Sorun 1

Microsoft .NET Framework 4.5.2 hedefleyen ve ReaderWriterLockSlim nesne içeren uygulamaları çalıştırdığınızda, bazı ARM tabanlı bilgisayarlarda bir kilitlenme oluşur.
Sorun 2
.NET Framework 4.5.2-based, 4.5.1-based veya 4.5 tabanlı uygulamalar, kilitleme ve kilidini açma ReaderWriterLockSlim nesne, birden çok fiziksel bilgisayarı içeren sistemlerde yüksek öncelikli iş parçacıklarının oluşturmak için kullandığınızda, bir kilitlenme oluşur.
Sorun 3
.NET Framework 4.5.2-based, 4.5.1-based veya 4.5 tabanlı bir uygulama yükleme yüklemek için Wise Installer kullandığınızda başvurulan yönetilen derleme yolu çok uzun ve eşdeğer bir kısa yol kullanarak adlı derleme başarısız olur. Örneğin, "C:\reallylongpathname installer\update.exe için" çalışır ancak c:\really~1\update.exe başarısız olur.
Sorun 4
.NET Framework 4.5.2-based, 4.5.1-based veya yeni para birimi simgesi için RUS Rublesi elde etmek için 4.5 tabanlı uygulama çalıştırmak varsayalım. Bilgisayarın kullanıcı yerel ayarı Rusça yerel ayar için ayarlı ise, RUS Rublesi simgesi görüntülenmez.
Sorun 5
MemoryStream büyük miktarda veri ile birlikte kullanarak büyük miktarda veriyi sıralamak çalıştığınızda uygulama donuyor. Aşağıdaki kod bu davranışlara neden olabilir desen gösterir:
Stream memoryStream = new MemoryStream();       const int geometryArraySize = 136000000;  // (OR HIGHER)var geometryDoubleArray=new double[geometryArraySize];var formatter = new BinaryFormatter();formatter.Serialize(memoryStream, geometryDoubleArray);​​
Sorun 6
Üst düzey metin içeren bir akış belge üzerinde belirli eylemleri gerçekleştirdiğinde (diğer bir deyişle, yalnızca satır içi kap içerdiği), işlenmemiş bir özel durum oluşturulur ve aşağıdaki hata iletisini alırsınız:
'Bu TextNavigator' kapsayan hiçbir metin öğesi vardır.

Aşağıdaki eylemleri bu soruna neden olabilir:
  • Klavye odağı için akan belgenin geri yükleme
  • Akan belgenin içerik seçme
  • Herhangi bir eylem ekleme imleci hareket ettirilir
Not: Ekleme imleci hareket kodu hatalı bir varsayım dan istisnası atılır.
7 sorun
XamlWriter.Save yöntemi XAML İçerik seri hale getirmek için kullandığı varsayılır. Yöntem yayması gereken XML: space "korumak" = içeriği genellikle XML okumak için varsayılan kurallar tarafından korunması değil boşluk içeriyorsa yönergesi. Bu işlemi doğru her zaman çalışmaz. Örneğin, aşağıdaki içeriği Çalıştır öğesindeki son öğe olmadığından ardışık boşluk içerir:
<TextBlock><Run>Two spaces between the O's  O  O. </Run><Run>But normal spacing in the last run.</Run></TextBlock>
Bu makalede, tüm olası hatalı çalışmaları eksiksiz bir açıklaması listelenemiyor. Ancak, bu güncelleştirmeyi yükledikten sonra bu sorunun bilinen tüm durumlarda doğru işlenir.
Sayı 8
Belirli koşullar altında çöp toplayıcı nesneleri daha büyük bir dizi sabitler. Çok fazla sabitleme önemli bir artış kısa ömürlü çöp toplama Duraklat kez neden olabilir ve bu davranış uygulama performansını etkileyebilir. Bu düzeltme daha verimli çöp toplayıcısı için buluşsal yöntemler sabitleme sağlar. Bu daha az sabitleme ve yüksek performansla sonuçlanır.
Sorun 9
.NET Remoting kullandığınızı varsayalım. SingleCall (çağrı başına yeni örneği) için yapılandırılmış bir uzak sunucu başladığınızda, sanki Singletoniçin yapılandırılmış olan uzak sunucu bazen çağrılır.
10 sorun
XAML tabanlı iş akışı projeleri tamamlayın XAML oluşturma görevleri tarafından tanımlanan uzaktan nesnelerinin varsayılan kira süresi (beş dakika) daha uzun sürer, nesneyi kesildi bildiren bir hata iletisi alırsınız. Örneğin, aşağıdaki hata iletisini 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 XamlBuildTaskRemotingLeaseLifetimeInMinutes ortam değişkenini tanımlayarak, kira süresi (dakika) tanımlayabilirsiniz.

İçin MSBuild proje dosyasında ortam değişkeni ayarlamak için proje dosyanıza aşağıdakileri içermelidir:

<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>
Not: Bu örnekte, MySetEnvGörevAdı değerdir. Bu değişken, görev adları için geçerli olan herhangi bir dizeye ayarlanabilir. Bu örnek, 1440 dakika (bir Proje oluşturulur ve Proje oluşturulduktan sonra "boş" sıfırlar önce gün) kira süresini ayarlar. Her proje bir genişletilmiş kiralama süresi gerektiren birden fazla proje varsa, bu yapılandırma gerektirir.
Sayı 11
Belirtiler

Application.DoEvents() yöntem NumericUpDown denetimi ValueChanged olay işleyicisinden çağırır varsayalım. Örneğin, aşağıdaki kodu kullanın:
private void numericUpDown1_ValueChanged(object sender, EventArgs e){ for (int i = 0; i < 10; i++) {   Application.DoEvents();   Thread.Sleep(10); } }
Zaman yukarı veya aşağı ok düğmesini birkaç saniye basılı tutulduğunda, Denetim yinelenen artırır veya azaltır üretmek için bir zamanlayıcı oluşturur. Application.DoEvents timer tick yeniden işlenir. Bu yeni ValueChanged olayı neden olur. Ardından timer tick olay işleyicisini yeniden girin. Fare düğmesi serbest bırakıldığında, Zamanlayıcı yığının altındaki işleyicisinde yok ancak daha sonra tekrar tekrar diğer işleyiciler sapmasına yığını gibi. Bu bir null başvuru özel durumu ve kilitlenmeye neden olabilir.



Geçici çözüm

Bu soruna geçici bir çözüm için BeginInvoke timer olayı işlendikten sonra Application.DoEvents() zaman uyumsuz olarak çağırmak için kullanın. Örneğin, aşağıdaki sınıf varsayılan davranışı geçersiz kılmak için kullanın:
public class MyNumericUpDown : System.Windows.Forms.NumericUpDown{ public NumericUpDown() : base() { } protected override void OnValueChanged(EventArgs e) { // run the handler as a separate event to prevent re-entrance to prevent a NullRef when hitting.  if (IsHandleCreated)  BeginInvoke(new Action(() => base.OnValueChanged(e)));  else  base.OnValueChanged(e); }}
Not: Genellikle, çünkü bu için yığın taşmasına neden olabilir (ValueChanged Timer.OnTick ileti işleyicisi oluşturulur) bir ileti işleyicisinden ileti döngüsü (Application.DoEvents) yeniden önerilmez. Örneğin, NumericUpDown denetimi aralığını büyük ve kullanıcı uzun süre aşağı ok düğmesi içerir. BeginInvoke yığın taşması önlemek için kullanın. Bu düzeltme, bu sorunu gidermez.

Sorun 12

Belirtiler
Uzun bir XPS belgesi kopyalama biçimlendirilmiş metin belgesi içindeki metnin konumunu bağlı olarak birkaç dakika sürebilir ve dondurmak uygulama neden olabilir.

Neden

Bazı biçimlendirme bildirimleri istediğiniz seçim en başından belgenin tarama gerektirdiği için bu sorun oluşur. Bu bildirimler ( IsTypographicOnlyolarak işaretlenmemiş bir TextElementEditingBehaviorAttribute özniteliğine sahip özel öğeden geldiklerini) nadirdir.

Mantık böyle bir bildirimleri istediğiniz seçimi görüntülendiğinde pahalı tarama önlemek için bu düzeltmeyi değiştirilir.

Sayı 13
Belirtiler

Windows Presentation Foundation (WPF) TextBlock, metnin sonunda bir veya daha fazla karakter görüntülenmeyebilir. Bu sorun, aşağıdaki koşullar geçerli olduğunda oluşur:
  • TextWrapping veya TextTrimming etkindir.
  • Doldurma sıfır olmayan veya TextFormattingMode "Görüntü"
  • Genişliği ayarlı değil veya "Otomatik" olarak ayarlayın
  • FontFamily FontSize ve özel karakterler metin unfavorable bir genişlik için müşteri adayı.
Neden

Bu sorun, dolgusu ve metin görüntüleme modu için piksel sınırlarına hizalamak için hesap iç koordinat sistemleri arasındaki genişliği dönüştürme metnin genişliğini bilgisayar kullanımı sırasında ortaya çıkabilecek sayısal (bir yuvarlama hatası) yanlışlıklar nedeniyle oluşur.

Bu tür yanlışlıklar karşı koruma hesaplamaları görüntülenmesi gereken tüm karakterler görüntülenir emin olmak için eklenmiştir.

Sayı 14

Sabitleme nesneleri performansında düşüşe neden çok fazla yığın bellek parçalanmasına neden olabilir. Bu düzeltme, yığın bellek parçalanması en aza indirir, bellek arabellekleri, daha verimli yeniden sağlar.

Sorun 15

Bazı durumlarda, bir uygulama AppDomain arka plan sonra çöp toplama işlemi kapatma sırasında erişim ihlali özel durumu karşılaşırsınız.

Sayı 16

Profil oluşturma API'sini kullanarak IL araçları yapmak tanılama araçlarını common language runtime (CLR) tarafından atılan aşağıdaki işlenmeyen özel durum neden olabilir:
0X80131401 "SECURITY_E_INCOMPATIBLE_SHARE =. Bu derlemenin yüklenmesi set diğer örneklerden farklı yetki ortaya çıkaracaktır.

Ayrıca, işlem çöküyor. Tanılama araçlarını kullandığınızda bu sorun yalnızca oluşur.

Sorun 17

Windows Communication Foundation (WCF) 4.5 HttpMessageHandler genişletilebilirlik noktası (WCF HTTP ardışık olarak da bilinir) kullandığınızda, WWW-Authenticate üstbilgisi HttpRequestMessage ya da HttpResponseMessageolarak ayarlanamaz. Yeni HttpMessageHandler genişletilebilirlik noktası üstbilgilerini işleme için farklı bir mekanizma kullanıyor olmasıdır.

Bu düzeltmeyi uyguladıktan sonra eşlik için üstbilgi eklemek için iki mekanizma duruma getirilir ve bir WWW-Authenticate üstbilgilerinde olduðu yeniden eklemeniz mümkün olmalıdır.

Sorun 18

SqlInternalConnectionTds.BreakConnection yönteminden bir NullReferenceException özel durum oluşturulur. Bu düzeltme, NullReferenceException özel durumu müşteri adayları zamanlama sorunu giderir.

Sorun 19

Symptoms

BinaryMessageEncoder sınıfını kullanan bir WCF uygulamasının bulunduğunu varsayalım ve temel UTF-8 metin kayıt başına Kodlayıcı kullanır [MC-NBFX]. Ya da System.ServiceModel.Channels.Message.CreateBufferedCopy yöntemini kullanan bir WCF uygulamasının bulunduğunu varsayalım. UTF-8 4 baytlık sıra olarak temsil edilen U + 10000'e U + 10FFFF (dahil) aralığındaki karakterleri içeren bir ileti işlenir. Bu durumda, kodlanmış ikili ileti kaybolabilir ve aşağıdaki hata iletisini alırsınız:

System.ArgumentException: The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderExceptionFallback'.Parameter name: charsat System.Text.Encoding.ThrowCharsOverflow()at System.Text.Encoding.ThrowCharsOverflow(DecoderNLS decoder, Boolean nothingDecoded)at System.Text.UTF8Encoding.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, DecoderNLS baseDecoder)at System.Text.DecoderNLS.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, Boolean flush)at System.Text.DecoderNLS.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex, Boolean flush)at System.Text.DecoderNLS.GetChars(Byte[] bytes, Int32 byteIndex, Int32 byteCount, Char[] chars, Int32 charIndex)at System.Xml.ValueHandle.TryReadChars(Char[] chars, Int32 offset, Int32 count, Int32& actual)at System.Xml.XmlBaseReader.ReadValueChunk(Char[] chars, Int32 offset, Int32 count)at System.Xml.XmlBinaryWriter.WriteTextNode(XmlDictionaryReader reader, Boolean attribute)at System.Xml.XmlDictionaryWriter.WriteNode(XmlDictionaryReader reader, Boolean defattr)at System.ServiceModel.Channels.ReceivedMessage.OnWriteBodyContents(XmlDictionaryWriter writer)at System.ServiceModel.Channels.Message.OnWriteMessage(XmlDictionaryWriter writer)at System.ServiceModel.Channels.Message.OnCreateBufferedCopy(Int32 maxBufferSize, XmlDictionaryReaderQuotas quotas)at System.ServiceModel.Channels.StreamedMessage.OnCreateBufferedCopy(Int32 maxBufferSize)at System.ServiceModel.Channels.Message.CreateBufferedCopy(Int32 maxBufferSize)at ConsoleApplication1.BufferRequestChannel.WrappingRequestContext.BufferMessage()

Bu sorun oluştuğunda, kendi kendine barındırılan WCF uygulaması ise, istemci yanıt zaman aşımına uğradı. WCF uygulamasının web tarafından barındırılan (ASP.NET) ise, istemci 500 sunucu hatası alırsınız.

Neden
4 baytlı UTF-8 karakter dizileri çözülür, bazen yeterli yer ayıran bir iç uygulama ayrıntılarını nedeniyle bu sorun oluşur.

Çözüm
Bu sorunu çözmek için düzeltmeyi uygulayın. Düzeltme uygulandıktan sonra WCF uygulamasının sonraki için bekler
Çıkış arabelleğinin çok baytlı Unicode karakter kodunu çözmek için yeterli alan yoksa, karakter kodunu çözmek için Read yöntemi.
Sorun 20
Seri hale getirme kodu kullanmak .NET framework uygulamaları aralıklı çökme durumlarıyla karşılaşabilirsiniz.

Sorun 21
Windows Communication Foundation (WCF) 4.5 veya sonraki sürümlerinde, StreamBodyWriter.OnWriteBodyContents(XmlDictionaryWriter) API işlevini kullanarak mekanizması değiştirildi.

Daha önce geçirilen XmlDictionaryWriter bu API kullanıldığında, OnWriteBodyContents yöntemini çağırmadan önce <Binary>etiketi zaten yazmış emin olmak gerekiyordu.

<Binary>Etiket StreamBodyWriter.OnWriteBodyContents(XmlDictionaryWriter) çağrılmadan önce yazılması gerekmez böylece davranış WCF 4.5.1 veya sonraki sürümlerinde değiştirildi. Bu XmlDictionaryWritergeçilen durumunu denetleyerek sağlanır. Bunun anlamı herkes WCF 4.5 veya sonraki sürümleri ve, WCF 4. 0 ' yükseltme gerçekleştirme WCF 4.0 davranışını temel alan türetilmiş StreamBodyWriter uygulamıştır gövde içeriğini artık hiç yazılır bulabilirsiniz.

Düzeltme bilgileri

Düzeltmeyi yükledikten sonra StreamBodyWriter şu şekilde davranır: </Binary></Binary>
  • Projenin hedef çatısı .NET Framework 4.0, eski davranışı ise (el ile yazma <Binary>etiketi) kullanılacak.<b00> </b00> </Binary>
  • Projenin hedef çatısı.NET Framework 4.5 veya sonraki sürümleri ve yeni davranış ise (otomatik yazma <Binary>etiketi) kullanılacak.<b00> </b00> </Binary>
Bu düzeltme, davranış bu fark nedeniyle uyumluluk sorunlarını çözmek. Uygulayıcılar türetilmiş StreamBodyWriters , .NET Framework 4.5.1 yeniden hedefleme bağlı davranış farklılıklarını bilmeniz gerekir.

Sorun 22
Belirtiler
Varlık kümelerinden birini eşlemek için bir QueryView bir varlık çerçevesi 5 modeli kullanır ve 1 0.. 1QueryView kullanarak eşlenen varlık kümesi ve bir ilgili varlığı arasında ilişki yoktur. Ne zaman bir sorgu kullanır. Include()QueryViewile ilgili varlıkların elde etmek için ayarlanmış varlıkta Entity Framework yığın taşması özel durum oluşturur.

Varlık Framework 4'te bu sorun ortaya çıkmaz.

Düzeltme bilgileri
Bu düzeltmeyi yükledikten sonra yığın taşması özel durum, daha önce sözü edilen durum karşınıza ve varlık Framework 4'te aynı şeklinden sorgunun çalışması gerekir atılır değil.
Sorun 23

Bir Microsoft Windows Presentation Foundation (WPF) uygulaması olması ve o birini veya birkaçını doğruysa varsayılmaktadır:
  • Başka bir işlem (örneğin, bir el yazısı tanıyıcıyı veya yardımcı bir araç), uygulamanızdaki metnin ekran konumunu sorgulamak için Microsoft Metin Hizmetleri çerçevesi (TSF) kullanıyor.
  • Böyle bir sorguyu ulaşan bir anda bekleyen Düzen iş uygulamanızdaki olduğunda.
  • Sorgulanan metin düzeni bekleyen çalışma yürüterek değiştirilir.
Bu durumda, aşağıdakine benzer bir iletiyle birlikte işlenmemiş System.ArgumentException özel durumu nedeniyle WPF uygulama durabilir:
13 karakter Uzaklık 0 karakterlerle belgedeki geçerli değil.

Bu sorun üzerinde uygulamanız ve TSF istemci işlemini göreli zamanlamasına bağlıdır. Bu nedenle, onu aralıklı veya rasgele bir hata görünüyor.

Bu güncelleştirme, özel durumun oluşmasını engeller ancak bunun yerine bu durumda TSF sorgu hata verir.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 2974336 - Son İnceleme: 04/10/2016 01:35:00 - Düzeltme: 6.0

Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 4.5.1, Microsoft .NET Framework 4.5

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2974336 KbMttr
Geri bildirim