У меня есть страница, которая не может быть проще:
<%@ Page Trace="true" %>
<html>
<head></head>
<body>
<h1>Hello World</h1>
<a href="/OtherPage.aspx"/>Other Page</a>
<p><%=DateTime.Now.ToString()%>
</body>
</html>
... но загрузка занимает вечность. Нет вызова базы данных или веб-службы, чтобы замедлить его. Команда trace показывает, что время от начала до конца рендеринга составляет 0,000049 секунды, но сама страница загружается несколько секунд. Это новый веб-сайт, который я только что создал для этого теста, и на нем есть только файл web.config и два тестовых файла. Единственное, что есть в web.config, - это контроль доступа:
<authorization><allow users="domain\me" /><deny users = "*"/></authorization>
Что еще IIS мог делать все это время?
Небольшая заметка о том, что произошло в моем случае:
Ни Process Monitor, ни Failed Request Tracing не помогли. Сайт просто загружался (почти) навсегда.
Наконец, после ожидания в течение нескольких минут произошла ошибка о том, что он «не может найти сетевой путь».
Причина заключалась в том, что я ввел строку подключения к несуществующему экземпляру SQL Server, поэтому он каким-то образом продолжал поиск сервера. Наконец, истек тайм-аут.
Решение было просто указать правильный SQL Server в строке подключения внутри Web.Config.
Время включить Отслеживание неудачных запросов IIS!
Я понимаю, что запрос на самом деле не сбой, но вы должны иметь возможность установить Статус 200 на трассировке, чтобы отслеживать успешные запросы. На iis.net есть учебник это говорит вам использовать трассировку неудачных запросов для отслеживания успешных запросов, поэтому я предполагаю, что это должно работать.
У меня были аналогичные проблемы с непригодными для использования приложениями на IIS в производственной среде. Одно веб-приложение с одним пулом приложений работало очень медленно.
Я просто установил для свойства «Включить 32-битные приложения» значение true в дополнительных настройках моих пулов приложений, и теперь я могу запускать 3 веб-приложения с 3 отдельными пулами приложений.
Более подробные инструкции здесь: http://forums.iis.net/t/1189907.aspx/1
Пора развертывать Монитор процессов MS SysInternals. Запустите его, включите "отбрасывать отфильтрованные события", затем настройте фильтр "Имя процесса является w3wp.exe"и монитор. Также перетащите Продолжительность столбец слева, чтобы его было легче увидеть.
Я видел, что у IIS 7.5 есть «проблемы» с 32-битным кодом ASP.NET, но ваша тестовая страница настолько минимальна, что я не могу поверить, что это вызвало бы проблему, даже если бы она использовала 32-битный .NET.