Настройка IIS для работы сайтов на ASP.NET

ASP.NET   14 января 2013  Автор статьи:  

В данной статье мы рассмотрим настройку Internet Information Server. Сам я в свое время потратил очень много времени на настройку IIS для запуска своих сайтов, которые были написаны на ASP.NET. Итак, начнем:
До того, как устанавливать IIS, необходимо установить .NET Framework и подходящий SQL сервер. До этого я рассматривал установку и настройку SQL Server Express R2.
После установки, перегрузите компьютер, это нужно для того, чтобы возникло меньше проблем с дальнейшей настройкой. После этого можно начать устанавливать IIS. Для этого перейдите в панель инструментов. Там необходимо перейти в установку и удаление программ (я называю это по старинке, у вас возможны следующие названия: «Программы и компоненты» или «Удаление программы»). После этого необходимо перейти на вкладку «Включение или отключение компонентов Windows», если вы настраиваете IIS на Windows Server, то вам необходимо будет добавить роль IIS, а если вы находитесь в обычной операционной системе, то просто найдите его среди компонентов.
Установка IIS
После этого вам откроется установка IIS, она достаточно проста, но когда вам предложат выбрать какие компоненты веб-сервера следует поставить, то советую вам выбрать все. После окончания установки IIS перезагрузите компьютер. Если вы все сделали правильно, то в строке быстрого поиска в пуске вводите IIS и вам покажется ярлык Диспетчер служб IIS. Щелкайте на него:
Панель управления IIS
Теперь нужно зайти в «Пулы приложений» и посмотреть, а есть ли у вас пул с версией .NET Framework, который вы используете. Если пула нет, то у вас выскочит следующая ошибка при дальнейшей настройке:
[warning]Обработчик «PageHandlerFactory-Integrated» содержит поврежденный модуль «ManagedPipelineHandler»[/warning]
Данная ошибка лечится следующим образом, необходимо зайти в папку с установленным Framework и запустить файл aspnet_regiis.exe -i. Это можно сделать с помощью командной строки, например так:

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe -i

После этого у вас появятся пулы с нужным вам Framework. Дальше я жму левой кнопкой на папку сайты и справа выбираю определить значения по умолчанию для веб-сайта. Там я сразу настраиваю учетные данные для доступа к физическому пути. Если вы не профессионал в построение безопасных систем, то просто напишите туда учетные данные администратора. Вы можете пропустить это действие, если собираетесь настраивать для каждого сайта отдельного пользователя. После этого необходимо поместить файлы сайта в папочку inetpub, которая расположена на локальном диске C:. Я вам советую сделать это, так как для этой папки уже настроены права доступа, которые нужны для функционирования сайтов. Конечно, каждый сайт следует класть в отдельную папочку внутри папки inetpub. После того, как файлы закачены, можно щелкнуть правой кнопочкой по папке сайты в панели управления IIS и выбрать пункт добавить сайт.
Добавление сайта
Укажите название сайта, не забудьте выбрать нужный пул, затем выберите физический путь до папки, где у вас лежит главная страница и выполните тест настроек, если вы проходите все тесты, значит все хорошо, иначе выберите пункт подключиться как и настройте пользователя. После этого вы можете указать по какому адресу IIS должен отображать ваш сайт, например cybern.ru, или ваш IP, например 95.31.32.69, кроме этого вы можете выбрать порт, и ограничить некоторые подключения, но мы пока что не будем трогать эти настройки. Если вы хотите, чтобы ваш сайт был доступен по нескольким привязкам, то просто выберите пункт привязки и добавьте новую. Поздравляю сайт добавлен, но на этом настройка еще не завершается, теперь необходимо щелкнуть на самое верхнее вложение, которое называется также, как имя вашего компьютера, оно находится под начальной страницей, редактируя опции для него, вы тем самым редактируете опции для всех сайтов. Найдите там ограничение CGI и ISAPI, зайдите в них и разрешите использовать ваш Framework, если вы этого не сделаете, то у вас возникнет следующая ошибка:
[warning]Ошибка сервера в приложении «Имя приложения»
Ошибка HTTP 404.2 — не найден
ЗНАЧЕНИЕ HRESULT: 0X800704EC
Описание HRESULT: запрашивается страница не может быть обработан из-за ограничений CGI и ISAPI параметры списка на веб-сервере.[/warning]
Теперь, если ваш сайт планирует работать с базой данных и вы собираетесь использовать профиль по умолчанию, то вам следует вернуться к пулам и там перейти в дополнительные параметры, там в вкладке «модель процесса» необходимо установить флаг загрузить профиль пользователя в true. Если вы этого не сделаете, то у вас появится следующая ошибка:
[warning]Не удалось сформировать пользовательский экземпляр SQL Server из-за ошибки при получении путей к локальным данным приложения пользователя. Убедитесь, что у пользователя есть локальный профиль на данном компьютере. Соединение будет закрыто.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.Data.SqlClient.SqlException: Не удалось сформировать пользовательский экземпляр SQL Server из-за ошибки при получении путей к локальным данным приложения пользователя. Убедитесь, что у пользователя есть локальный профиль на данном компьютере. Соединение будет закрыто.
[/warning]
Все, надеюсь ваш web-сайт заработал.

  • Артем

    Добрый день.

    Большое спасибо за эту статью, очень помогла разобраться 🙂 Так бы, чувствую, еще не одну неделю ковырял бы и не понимал в чем дело!

    Единственное замечание:
    cd C:WindowsMicrosoft.NETFrameworkv4.0.30319
    aspnet_regiis.exe -i

    необходимо запускать из окна коммандной строки, открытой под Администратором, иначе скажет что нет прав на запуск

Научиться программировать

  • на Delphi

  • на Java

  • на C++