Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Lai lietotu šo labojumfailu apkopojuma, skatiet šo zināšanu bāzes rakstu un lejupielādētu pareizo labojumfailu pakotne:

2925383 2925383 labojumfailu pakotne ir pieejama 4.5.1 Windows .NET Framework

Ievads

Šajā rakstā ir aprakstīts labojumfailu apkopojumu 2908385, kas pieejama Microsoft .NET Framework 4.5.1. Lai iegūtu papildinformāciju par labojumfailu novērš problēmu, skatiet sadaļu "Papildinformācija".

Šī labojumfailu pakotne ir pieejama šādās operētājsistēmās:

  • Windows 8

  • Windows Server 2012


Papildinformācija

Informācija par labojumfailu

Pašlaik korporācija Microsoft piedāvā atbalstītu labojumfailu. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Izmantojiet to tikai tām sistēmām, kurām ir radusies tieši šī problēma.

Lai novērstu šo problēmu, sazinieties ar Microsoft klientu atbalsta pakalpojumu sniedzēju, lai iegūtu labojumfailu. Lai iegūtu pilnīgu sarakstu ar Microsoft klientu atbalsta pakalpojumu sniedzēju tālruņu numuriem un informāciju par atbalsta izmaksām, apmeklējiet šo Microsoft vietni:

http://support.microsoft.com/contactus/?ws=supportPiezīme. Īpašos gadījumos standarta izmaksas par atbalsta zvaniem nav jāsedz, ja Microsoft atbalsta speciālists nosaka, ka šo problēmu novērsīs noteikts atjauninājums. Parasti atbalsta izmaksas tiek piemērotas jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.

Priekšnosacījumi

Lai lietotu šo labojumfailu, datorā jābūt instalētai .NET Framework instalēta 4.5.1.

Restartēšanas nepieciešamība

Dators ir jārestartē pēc šī labojumfaila lietošanas jebkuru ietekmētie faili tiek lietoti tādi. Ieteicams aizvērt visas lietojumprogrammas .NET Framework pirms šī labojumfaila.

Informācija par labojumfaila aizstāšanu

Šo labojumfailu pakotni neaizstāj iepriekš izlaistu labojumfailu pakotni.


Šī labojumfailu pakotne novērš problēmas

1. problēma

Symptoms

Pieņemsim, ka jums izsaukt no NumericUpDown kontroles ValueChanged notikumu apdarinātāja Application.DoEvents() metodi. Piemēram, varat izmantot šādu kodu:private void numericUpDown1_ValueChanged(object sender, EventArgs e){
for (int i = 0; i < 10; i++)
{
Application.DoEvents();
Thread.Sleep(10);
}
}
Kad nospiesta augšup un lejup bultiņas dažas sekundes, vadīkla izveido izveidot atkārtoti palielina vai samazina taimeri. Application.DoEvents taimera mirkļu iedalīšanu vēlreiz. Tādējādi jaunu ValueChanged notikumu. Pēc tam vēlreiz ievadiet taimera mirkļu notikumu apdarinātāja. Atlaižot peles pogu taimeris ir iznīcināti apdarinātājs kaudzes apakšā, bet pēc tam ir atkārtoti vēlreiz kā steks ir to atsēja ar citām apstrādes. Tas izraisa nulles atsauces izņēmums un avārijas.



Risinājums

Lai atrisinātu šo problēmu, izmantojiet BeginInvoke asinhroni zvanīt ( Application.DoEvents) pēc apstrādes taimera notikumu. Lai mainītu noklusējuma darbība, piemēram, izmantojiet šādas klases: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);
}
}
Piezīme. Parasti nav ieteicams, tiek atkārtota ziņojumu cilpa (Application.DoEvents) no ziņojumu apstrādes (ValueChanged iegūti Timer.OnTick ziņojumu apstrādes), jo tas var izraisīt steka pārpilde. Piemēram, NumericUpDown kontroles diapazons ir liels un lietotājs tur nospiestu bultiņas uz ilgu laiku. Izmantojiet BeginInvoke lai izvairītos no steka pārpildi. Šis labojumfails nav risināt šo jautājumu.

2. problēma

Pazīmes

Kopēšanas formatēts teksts no garu XPS dokumentu var ilgt vairākas minūtes atkarībā no atrašanās vietas tekstu dokumentā, un var izraisīt lietojumprogrammas sasalt.

Cause

Šī problēma rodas, jo dažas formatēšanas deklarāciju nepieciešams skenēt dokumentu no sākuma līdz vēlamās izvēles. Šo deklarāciju ir reti (nākuši pielāgotu elementi, kas ir TextElementEditingBehaviorAttribute atribūtu, kas nav atzīmētas IsTypographicOnly).

Šo labojumfailu, lai izvairītos no dārgas pārbaudes nav šādu deklarāciju parādās vēlamās izvēles tiek mainīts loģika.

3. problēma

Pazīmes

Windows prezentāciju pamata (WPF) bloku, iespējams, netiks rādīta viena vai vairākas rakstzīmes tās teksta beigās. Šī problēma rodas, ja ir spēkā kāds no šiem nosacījumiem:

  • TextWrapping vai TextTrimming ir iespējots.

  • Kas nav nulle papildinājumu, vai TextFormattingMode ir "Parādīt".

  • Nevar iestatīt platumu vai ir iestatīta uz "Automātiski".

  • FontFamily FontSize un speciālās rakstzīmes, teksta radīt nelabvēlīgu platumu.

Cause

Šī problēma rodas, jo ciparu neprecizitātes (noapaļošana kļūda), kas var rasties, bet skaitļošanas teksta pārvēršana platums starp iekšējā koordinātu sistēmas, tastatūras un pikseļu robežas displeja režīma teksta līdzināšana platumu.

Aizsardzība pret šāda veida neprecizitātes ir pievienota aprēķini, lai pārliecinātos, ka visas rakstzīmes, kas ir jābūt norādītai parādīsies.

4. problēma

Pārāk daudz atmiņas kaudzes fragmentācija, izraisa veiktspējas samazināšanās var izraisīt piespraušanu objektus. Šis labojums nodrošina efektīvāku atkārtota atmiņas buferi, kas samazina kaudze atmiņas fragmentācija.

5. problēma

Dažreiz, lietojumprogramma var saskarties ar izņēmumu piekļuves pārkāpuma AppDomain negaidītu pēc fona drazu savākšana darbības laikā.

6. jautājums

Diagnostikas rīkus, kas IL instrumentācijas, izmantojot API profilu var izraisīt šo neapstrādāts izņēmums izmests, kopējais valodas izpildlaiks (CLR):

0X80131401 "= SECURITY_E_INCOMPATIBLE_SHARE. Šajā montāžas ielādes radītu citu piešķiršana no citos gadījumos.


Turklāt šis process avārijas. Šī problēma rodas tikai, izmantojot diagnostikas rīku.

7 problēma

Ja izmantojat Windows Communication Foundation (WCF) 4.5 HttpMessageHandler paplašināšana punkta (zināms arī kā WCF HTTP konveijers), WWW autentificētu galvenes nevar iestatīt HttpRequestMessage vai HttpResponseMessage. Tas ir tāpēc, ka paplašināšana jaunā HttpMessageHandler izmanto citu mehānismu darbam ar galvenēm.

Pēc šī labojumfaila lietošanas pārība ir vērsta divi mehānismi pievienot galvenes un viens var pievienot WWW autentificētu galvenes vēlreiz.

8. jautājums

NullReferenceException izņēmums tiek pieļauts SqlInternalConnectionTds.BreakConnection metodi. Šis labojumfails novērš hronometrāžas problēmas, kas izraisa izņēmumu NullReferenceException .

9. jautājums

Pazīmes

Pieņemsim, jums ir WCF lietojumprogrammu, kas izmanto BinaryMessageEncoder klases un kodētāja izmanto UTF-8 sistēma teksta ieraksts par [MC NBFX]. Vai arī pieņemsim, ka jums ir WCF lietojumprogrammu, kas izmanto System.ServiceModel.Channels.Message.CreateBufferedCopy metodi. Ziņojums tiek apstrādāts satur rakstzīmes diapazonā U + 10000 līdz U + 10FFFF (ieskaitot), kas apzīmēti kā 4 baitu secība UTF-8. Šādā gadījumā kodēts binārais ziņojumu var pazust, un tiek parādīts šāds kļūdas ziņojums:

System.ArgumentException: The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderExceptionFallback'.Parameter name: chars
at 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()

Šī problēma rodas, kad klients taimautam bez atbildi, ja WCF piemērošana ir self-hosted. WCF piemērošana ir tīmeklī viesotu (ASP.NET), ja klients saņem 500 — servera kļūda.

Iemesls

Šo problēmu izraisa iekšējā ieviešanas detaļas, kas dažreiz piešķir pietiekami daudz vietas, ir dekodēt 4 baitu UTF-8 rakstzīmju secību.

Risinājums

Lai novērstu šo problēmu, lietojiet labojumfailu. Pēc šī labojumfaila lietošanas programma WCF lietojumprogrammu būs jāgaida līdz nākamajai
Lasīt metode paredzēta rakstzīmes, ja nav pietiekami daudz vietas izvades buferis atšifrēt vairākbaitu unikoda rakstzīmes.

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×