IIS прерывает поток запросов со статусом 995

10

У нас есть сайт, на котором у нас проблемы с нашим рабочим сервером, но не на моем компьютере разработчика с отмененным запросом (следовательно, нулевой ответ).

Он терпит неудачу ровно через 1:19 минут каждый раз, и запрос на моей машине разработчика занимает около 1:44.

Длина контента составляет около 650 КБ, так что это не должно быть проблемой.

Производственная среда - Windows 2008 с IIS7, среда разработки - Windows 7 с IIS 7.5

Они имеют идентичный web.config, но конфигурация машины немного отличается (хотя они должны быть стандартными от установки)

Что может быть причиной этого?

При просмотре в журнале доступа, строка говорит 0 байтов в ответном байте win32-код 995, который должен быть 0, это последние столбцы из строки доступа:

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

Кажется, 995 связан с «прерыванием потока» или чем-то еще, поэтому я уверен, что IIS прерывает запрос. процесс w3wp.exe, кажется, запускается некоторое время даже после того, как запрос остановлен, поэтому я не думаю, что веб-приложение даже замечает, пока не пришло время писать в выходной поток.

РЕДАКТИРОВАТЬ: попробовал сейчас с другими подключениями, и кажется, что мой брандмауэр разрывает соединение из-за отсутствия данных (преждевременно). Отсюда код 995.

Jishi
источник
Значение minBytesPerSecond по умолчанию равно 240, что приведет к 46 минутам, но вместо этого вы можете увидеть некоторые динамически настроенные таймауты (IIS делает это на основе dynamicIdleThreshold, если не 0).
Eckes

Ответы:

0

У меня та же проблема, в моем случае сетевой адаптер является причиной sc-win32-status 995. Что вы изменили в брандмауэре, чтобы предотвратить это? В диспетчере устройств => сетевой адаптер => свойства => дополнительно вы можете установить несколько настроек, связанных с сетью

Cerveser
источник
У нашего брандмауэра был настроен ALG для HTTP, который разорвал бы соединение через 120 секунд, если через него не будут проходить данные. Я просто отключил его для рассматриваемого IP.
Jishi
0

Попробуйте проверить настройку «executeTimeout» в ASP.NET. По умолчанию это 110 секунд, что похоже на то, что вы сообщаете:

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

Это может присутствовать любой из этих конфигов:

  • Machine.config
  • Корневой уровень Web.config
  • Уровень приложения Web.config
  • Виртуальный или физический каталог уровня Web.config

Надеюсь это поможет.

Марк Рэгг
источник