Objawy
Załóżmy, że klasa lub klasy HttpClient w programie.NET Framework 4.5 do wysłania żądania do serwera. W tej sytuacji, gdy złożono wniosek i odpowiedzi HTTP jest pakietowego, serwer połączenie zostanie przerwane.
Uwaga: Ten problem zazwyczaj występuje po zastosowaniu aktualizacji, którą opisano w następującym artykule z bazy wiedzy Knowledge Base (KB):
2750149 aktualizacja jest dostępna dla programu.NET Framework 4.5 w systemie Windows 8, Windows RT i systemu Windows Server 2012: stycznia 2013
Rozwiązanie
Aby upewnić się, że klasa i klasa HttpClient będzie ponowne użycie połączenia, należy opróżnić cały HTTP odpowiedzi na żądania z połączenia, zanim nowe żądanie może zostać wykonane. Aby poradzić sobie z tym problemem, zastosuj jedną z następujących metod:
-
Upewnij się, całkowitego wyczerpania strumienia odpowiedź przed wysłaniem nowego żądania. Na przykład po otrzymaniu odpowiedzi fragmentaryczne aplikacja odczytuje strumień odpowiedzi do momentu metoda odczytu strumienia zwraca wartość "0 bajtów odczytanych."
Uwaga Takie podejście wymaga żadna dodatkowa aktualizacja do zainstalowania. -
Zainstaluj tę aktualizację, aby przywrócić takie samo zachowanie przed zainstalowaniem poprawki w KB 2750149. Gdy aplikacja zamyka strumienia odpowiedzi, klasy HttpWebRequest próbuje drenażu odpowiedzi. Jeśli ta operacja się powiedzie, połączenie zostanie ponownie dla następnego żądania.
Informacje o poprawce
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.
Wymagania wstępne
Aby zastosować tę poprawkę, musi mieć program Microsoft.NET Framework 4.5 zainstalowany.
Wymagania dotyczące ponownego uruchomienia
Po zastosowaniu tej poprawki, jeśli pliki podlegające usterce są używane podczas instalacji, należy ponownie uruchomić komputer. Firma Microsoft zaleca, aby zamknąć wszystkie aplikacje, które używają.NET Framework, przed zastosowaniem tej poprawki.
Wersja globalna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania.
Dla wszystkich obsługiwanych wersji x86 systemu Windows 8
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
Platforma |
---|---|---|---|---|---|
System.dll |
4.0.30319.19082 |
3,449,912 |
08-May-2013 |
23:35 |
x86 |
Dla wszystkich obsługiwanych wersji systemu Windows 8, Windows Server 2012 x64
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
Platforma |
---|---|---|---|---|---|
System.dll |
4.0.30319.19082 |
3,449,912 |
08-May-2013 |
23:58 |
x86 |
System.dll |
4.0.30319.19082 |
3,449,912 |
08-May-2013 |
23:35 |
x86 |