IIS przerywa wątek żądania o statusie 995

10

Mamy witrynę, w której mamy problemy na naszym serwerze produkcyjnym, ale nie na mojej maszynie deweloperskiej z żądaniem przerwanym (stąd zerowa odpowiedź).

Nie udaje się to za każdym razem dokładnie po 1:19 minut, a żądanie na mojej maszynie programistycznej zajmuje około 1:44.

Długość zawartości wynosi około 650 KB, więc nie powinno to stanowić problemu.

Środowisko produkcyjne to Windows 2008 z IIS7, środowisko programistyczne to Windows 7 z IIS 7.5

Mają identyczny plik web.config, ale konfiguracja komputera różni się nieznacznie (chociaż powinny być standardem od instalacji)

Co może być tego przyczyną?

Przeglądając dziennik dostępu, wiersz mówi 0 bajtów w odpowiedzi na bajt kod win32 995, który powinien wynosić 0, to są ostatnie kolumny z wiersza dostępu:

sc-status sc-substatus sc-win32-status sc-bytes time-taken
200       0            995             0        76933

995 wydaje się być związane z „przerwaniem wątku” lub czymś takim, dlatego jestem pewien, że to IIS przerywa żądanie. wydaje się, że proces w3wp.exe działa przez pewien czas, nawet po zatrzymaniu żądania, więc nie sądzę, aby aplikacja internetowa nawet zauważyła, dopóki nie nadejdzie czas na zapisanie strumienia wyjściowego.

EDYCJA: Próbowałem teraz z różnymi połączeniami i wygląda na to, że moja zapora sieciowa przerywa połączenie z powodu braku danych (przedwcześnie). Stąd kod 995.

jishi
źródło
Domyślna wartość „minBytesPerSecond” to 240, co dałoby 46 minut, ale zamiast tego mogą pojawić się pewne dynamicznie dostosowywane limity czasu (IIS robi to na podstawie dynamicIdleThreshold, jeśli nie 0).
eckes

Odpowiedzi:

0

Mam ten sam problem, w moim przypadku karta sieciowa jest przyczyną statusu SC-Win32 995. Co zmieniłeś w zaporze, aby temu zapobiec? W menedżerze urządzeń => karta sieciowa => właściwości => zaawansowane możesz ustawić kilka ustawień związanych z siecią

Cerveser
źródło
Nasza zapora sieciowa ma skonfigurowaną ALG dla HTTP, która przerwałaby połączenie po 120 sekundach, gdyby żadne dane nie przepływały przez nie. Właśnie ją wyłączyłem dla danego adresu IP.
jishi,
0

Spróbuj sprawdzić ustawienie „ExecutimeTimeout” w ASP.NET. Domyślnie wydaje się to 110 sekund, co jest podobne do tego, co zgłaszasz:

http://msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx

Może to być dowolna z następujących konfiguracji:

  • Machine.config
  • Web.config na poziomie root
  • Web.config na poziomie aplikacji
  • Web.config na poziomie katalogu wirtualnego lub fizycznego

Mam nadzieję że to pomoże.

Mark Wragg
źródło