IIS на локальном хосте очень медленный
Я использую IIS7 на двухъядерном процессоре Windows Vista. Первое попадание в службу WCF или веб-форму ASP.NET иногда занимает больше минуты, что для меня неприемлемо.
Я настроил приложение для использования пула приложений Classic .NET и попытался поиграть с максимальными рабочими процессами, сначала установив для него значение 4, но вернув значение 1, поскольку оно не дало ожидаемого результата. Есть ли другие вещи, которые я могу попробовать?
4 ответа
Проверьте ваш файл web.config для режима компиляции. Пока вы разрабатываете, вы должны запустить свой сайт в режиме отладки. Если вы работаете в режиме релиза, все aspx и ascx будут скомпилированы во временные сборки, а не только по страницам и элементам управления, которые вы нажали. Также установите для пакета значение false.
<configuration>
<system.web>
<compilation debug="true" batch="false" ...>
...
</compilation>
...
</system.web>
...
Конечно, они не рекомендуются для производственных сред, которые будут замедлены этими изменениями.
Также проверьте эту ветку форума, где вы можете найти несколько интересных советов, таких как сброс разрешений для папки временных файлов ASP.NET:
У меня была та же проблема, и я внес все изменения, как указано на этом форуме, но это не помогло. Я начал подозревать, что медленное время загрузки dll связано с настройками безопасности. Похоже, что доступ к библиотекам проходит проверку безопасности, которая является частью операционной системы, а не частью VIsual Studio. DLL находятся в каталоге для вашего приложения в:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
Чтобы ускорить проверку безопасности, вам необходимо удалить все параметры безопасности в корневой папке вашего приложения в вышеупомянутом каталоге или в каталоге "Временные файлы ASP.NET", если вы хотите, чтобы он применялся к все веб-приложения, которые вы разрабатываете.
Вы щелкаете правой кнопкой мыши по папке и выбираете Свойства -> Безопасность.
Удалить всех пользователей и группы. Некоторым будет запрещено удалять, потому что они наследуют свои разрешения из родительской папки. Сначала необходимо удалить наследование, нажав кнопку "Дополнительно", а затем снимите флажок "Наследовать от родителя...". Затем удалите пользователя или группу. Не должно быть пользователей или групп, для которых флажки для их разрешений неактивны. Если они неактивны, это означает, что вы не удалили наследство от их родителя.
После удаления всех пользователей и групп из папки необходимо добавить следующих пользователей и группы:
Администраторы Пользователи Сетевая служба ASPNET Локальная служба
Дайте каждой из этих учетных записей полное разрешение. Снова нажмите кнопку "Дополнительно" и отметьте "Заменить записи разрешений для всех дочерних объектов..."
Это может быть так же просто, как проблема DNS. Попробуйте использовать 127.0.0.1 вместо localhost при доступе. Если это работает, то просто добавьте 127.0.0.1 в ваш файл hosts и / или всегда получите доступ через ваш localhost IP.
Если это происходит при запуске приложения, отключение параметра времени ожидания должно помочь, по крайней мере, до перезагрузки или перезапуска IIS по какой-либо другой причине. Это все равно оставило бы вопрос о том, почему ваше приложение так долго запускается.
Это только первый раз, когда вы получаете доступ к приложению после его создания? В этом нет ничего необычного, поскольку веб-приложение должно компилировать файлы из DLL и т. Д. И будет быстрее при последующих загрузках.