Разворачиваю сайт MVC 3 на IIS -- инструкция имеется?
Итак, я слабал сайт и хочу его развернуть на IIS 7.5. Я уже зарегил 4-й фреймворк через aspnet_regiis.exe и теперь он появляется у меня в Application Pool.
Однако, после того, как я делаю Публикацию сайта через вижуал студию 2010 sp1 у меня все время возникает ошибки в браузере. Не буду их перечислять, потому что стоит мне что-то поменять в настройках при публикации, то меняется и код и форма ошибки. Попытаюсь сформулировать, чего я хотел бы получить:
1. Веб-сервер, поддерживающий MVC 3, на локальном компьютере - это сделано.
2. Создать пакет для развёртывания из вижуал студио. Мне трудно специфицировать настройки этого пакета, но суть в том, что проект использует базу на внешнем MS SQL 2008. В этой же базе хранится и таблица для провайдера аутентификации (если это имеет значение). Также проект имеет референсы на NHibernate и FluentNHibernate.
3. Понять, как именно нужно развёрнуть полученный пакет на веб-сервере. Это самая важная часть, наверно. Меня интересуют все мелочи и тонкости, чтобы не упускались существенные детали, например как при добавлении поддержки mvc в iis, что тот же самый aspnet_regiis.exe находится в %windir%/Microsoft.Net/Framework/v4.0.30319.
В результате претворения в жизнь инструкций должно стать возможным получить доступ на сайт через адресную строку браузера в виде
mysite.mydomain.domain:myport
А если серьезно, то когда я искал ответ на этот вопрос в интернетах попадались ссылки на статьи в разных блогах, суть которых сводилась к следующему: Нажмите Publish и будет вам счастье. Поскольку это было мое первое знакомство с иис я был несколько обескуражен тем, как всё просто получается в статьях в интернетах и как дело обстоит на самом деле в моем конкретном случае. То есть я вообще ничего не знал по иису до того, и тон в вопросе, вероятно, преисполнен скорее разочарования, чем претензией. Но уж как получилось, так и написал.
Насчет проблем с которыми я столкнулся при разворачивании своего проекта на MVC 3 в среду IIS 7.5
1. Как правильно собрать свой пакет в VS 2010:
- Капитан Очевидность: в пакет включаются только те файлы, которые добавлены в проект. То есть, если вы, например, подключили стороннюю библиотеку стилей и добавили просто ссылку на неё в одном из представлений, то этого будет не достаточно. Поэтому важно включать все используемые файлы явным образом, только тогда они окажутся в пакете.
- Тонкости (мельчайшие детали, которые легко упустить):
По умолчанию проект разворачивается в ту же директорию, где находится и сам проект, но с именем <Имя_проекта>_deploy.
Чтобы проект сразу отправлялся на публикацию нужно заполнить в Package/Publish Web поле Location where project will be created. Можно указать такой путь: C:\inetpub\wwwroot\<имя_проекта>. Важно, что именно эта папка по умолчанию является видимой для веб-сервера. Поэтому туда можно пихать все проекты сразу, чтобы держать всё в едином месте и не разбрасывать доступные для веба папки по харду (продолжение в пункте 2). - ВАЖНО: если вы по какому-то случаю нажали правой кнопкой на проект и выбрали Add Deployable Dependecies и включили туда бинарники для MVC - имейте ввиду, что вы ДОЛЖНЫ прописать в основном файле web.config следующее:Код:<configuration>
<appSettings>
<add key="enableSimpleMembership" value="false"/>
</appSettings>
</configuration>
- Теперь надо установить iis 7.5. Заходим в Programs and Features ищем ссылку Turn Windows features on or of. Если у вас подходящая версия винды 7 , то в списке доступных фич будет иис 7.5 или 7. Если нет, то надо найти решение вам самим. Ставим везде галки и устанавливаем. У меня корпоративная версия.
- Обещанное продолжение тонкостей: запускаем iis, находим в правом меню папку Sites, правой кнопкой по этой папке и выбираем Add Web Site. После чего в Site Name можно указать название вашего проекта как в VS 2010. Не примяните удостовериться, что используемый Application Pool (он справа от Site Name) поддерживает MVC (нажать на кнопку Select и найти строчку .Net Framework Version 4.0; если нет, то зарегить тулзой aspnet_regiis.exe для 4-й версии фреймворка). Далее в физическом пути указать папку проекта в inetpub (пример пути уже приводился). В группе Binding и это также критичная точка, правильно указать Host Name. Какие псевдонимы вы здесь перечислите, такие запросы и сможет разрешать ваш веб-сервер к вашему сайту. То есть если вы здесь просто укажете localhost и попытаетесь стукнуться из сети по ip-адресу, то (поведение по умолчанию) ничего не получится: сервер ответит что-то вроде "сайт не доступен" или подобное. Поэтому обязательно перечислить все возможные для этого сайта псевдонимы. Чтобы веб-сервер отвечал на все запросы с любым именем - поставьте в это поле звёздочку *
- Наверно последнее: нужно убедиться, что анонимный доступ к сайту разрешен. Нажать на название своего сайта в правом меню iis'а, в группе "IIS" выбрать Authentication. Убедиться, что anonymous authentication имеет статус enabled. Если нет, то включить. Нажать правой кнопкой, выбрать Edit. По умолчанию учетная запись для анонимного юзера называется IUSR.
Цитата:
...Не буду их перечислять, потому что стоит мне что-то поменять...
Цитата:
...Это самая важная часть...чтобы не упускались существенные детали...
Не хочу показаться грубым, но с подобными запросами и описаниями проблем, единственно что можно посоветовать - потратить денег и:
1) купить литературы;
2) пройти курсы.
потому что не хотел бы повторяться, но
1). телепатия практически у всех не прокачана;
2) не понятно ради чего, ктото должен разбираться с проблемами нуба и искать решения, которые лень искать самому нубу.
Особенно если учесть с каким дебилизмом апломбом это все излагается. Только за стиль изложения можно сразу ставить +20 у.е. час обучения