У нас есть производственное приложение (ASP.NET MCV 3), работающее на IIS 7.5, Windows Server 2008 R2 Enterprise, и моя проблема заключается в том, что время от времени приложение перестает отвечать на запросы. Каждый сделанный запрос занимает вечность, и с сервера не возвращается никакого результата. Мой вопрос таков: где я должен искать, что что-то идет не так, и, что более важно, что это за вещи.
У меня есть полный доступ к этой машине, поэтому, если может потребоваться какая-либо другая информация (журналы IIS/Windows и т. д.), я могу ее предоставить.
Спасибо, и я надеюсь, что это не дубликат. Если это так, пожалуйста, укажите мне на другой пост.
Последние выводы: мне удалось воспроизвести эту ошибку и в нашей тестовой среде, но я до сих пор не знаю, что ее вызывает. Это происходит, когда два пользователя вошли в систему с двумя разными учетными записями. В какой-то момент делается запрос, который никогда не завершается. Он не дает тайм-аут, он просто говорит (ожидает) навсегда. Повторное использование пула приложений решает эту проблему. Есть предположения?
Обновления: похоже, это проблема пула приложений: когда тестовое приложение перемещается в DefaultAppPool (используя, следовательно, ApplicationPoolIdentity), сбой больше не появляется. Когда я снова переключаюсь на MyAppPool (используя NetworkService в качестве пользователя), приложение снова начинает зависать. Таким образом, переход на DefaultAppPool должен быть правильным шагом. К сожалению, это не применимо (скорее не может) к рабочему серверу. Там пользователь должен быть конкретным, чтобы выполнять загрузку/выгрузку каких-либо файлов в/из частного NAS. Как я могу заставить все работать отсюда? Выдает себя за пользователя кода? Клонировать разрешения пользователя ApplicationPoolIdentity?