G+

Asp.net для начинающих: публикация приложения, развернуть сайт на asp.net mvc

Программирование Asp.net
Предыдущий Следующий

Будем учиться публиковать сайт на asp.net mvc 3 и настраивать IIS

На хостинге у Вас должно быть установлено: Windows Server (2003/2008/....), net. Framework 4, IIS. Так же MS SQL, если Вы используете эту БД.

Компания хостинг может Вам дать доступ к серверу через ftp или удаленный доступ к серверу (и в том и другом случае это IP-адрес сервера и логин/пароль пользователя).

Сначала нам нужно получиться файлы сайта, которые мы будет публиковать на сервер. Откроем нужный проект в Visual Studio и сделаем некоторую подготовительную работу.

В "Solution Explorer" развернем папку "References". Найдем референс "System.Web.Mvc" нажмем на нем правой  кнопкой мышки и в контекстном меню выбираем "Properties". Установим свойство "Copy Local" в True.

Этим мы сказали системе, что бы при создании файлов для публикации, она создала dll файл в папке bin. Это нужно делать в том случае если на сервере не установлено asp.net mvc или установлена версия, которая отличается от Вашей. Вообщем, что бы не было проблем, библиотеки, которые не входят в стандартный набор net.framework нужно копировать в bin обязательно.

Установить свойство "Copy Local" в True я порекомендую так же для System.Web.Helpers, System.Web.Routing, System.Web.WebPages. В целом, если Вам не будет хватать какой-то библиотеки для работы сайта, то система Вам про это сообщит, когда Вы зайдете на сайт.

Следующий интересный момент это Web.config. В Visual Studio 2008 таких файликов три (сгруппированы в один: Web.Debug.config - для программинга, Web.Release.config - для развертывания). Но я ними пользоваться не привык, по этому удаляю их из фалов для публикации. Для этого в контекстном меню всех троих файлов выбираю пункт "Properties" и устанавливаю параметр "Build Action" в "None"

Я это делаю для того, что бы не перезаписать web.config боевого сайта из файлом web.config для разработки.

После подготовительных работ, нажимаем правой клавишей на названии проекта и выбираем "Publish..."

Откроется окно "Publish Web". В нем мы должны указать, куда публиковать наш сайт. Можно его заливать сразу на сервер (например через ftp), но я такой метод не поддерживаю. Я публикую файлы сайта в какую-то временную папку (например D:\public), а уже потом из нее переношу, только нужные мне файлы на боевой сайт.

Итак, выбираем "Publich method:" -> "File  System". Указываем путь, где буду создаться файлы сайта в параметре "Target Location". Так же устанавливаем параметр "Delete all existing files prior to publish", что бы папочка "D:\public" была очищена перед публикацией. Жмем кнопку "Publish".

Ждем, когда студия покажет нам статус "Publish succeeded"

Теперь перейдем в нашу папку. Как видите в этой папке есть папка bin в которой хранятся все dll-файлы, которые были помечены как "Copy Local". Так же Вы видите что файл web.config не был скопирован. Давайте его копируем в корень "D:\public" из исходников нашего сайта (копировать нужно только файл Web.Config, другие два не нужны). Так же web.config для боевого сайта нужно изменить, а именно нужно указать, что сайт находиться  не под дебагом. Для этого измените строку <compilation debug="true" targetFramework="4.0"> на <compilation targetFramework="4.0">. Так же нужно изменить строку подключения к БД, если вы ее используете.

Теперь сайт готов к публикации.

Если нам компания предоставила только ftp, то копируем туда созданные файлы, и надеемся, что все настройки сайта они сделали правильно. Если нет, то рассмотрим, как нужно развертывать сайт на примере Windows Server 2008:

1) Создаем папку с названием сайта. Например "mysite.com.ua". Эту папку лучше создавать на диску, где виндовс не стоит (что бы хватило места для сайта и для виндовс). Копируем туда исходники сайта.

2) Нажимаем правой клавишей мышки на "Мой компьютер" и выбираем "Manage" (Управление)

3) Переходим в раздел "Internet Information Services".  В этом разделе создаем новый "Application Pool". Как правило, я поток называю так же как и сайт.

4) Теперь на папке "Sites" выбираем "Add Web Site..."

5) Заполняем окно. Указываем название сайта, обязательно выбираем созданный "Application Pool", указываем путь к папке с исходниками сайта. Жмем ОК.

6) Теперь в папке "Sites" появиться наш сайт. Нажимаем на него. В панели "Actions" нажимаем на "Bindings..." и добавляем алиас "www.mysite.com.ua"

Теперь, если Вы привязали домен сайта к северу (указали в A-записи IP адрес сервера), то сайт должен работать

 

 

Asp.net для начинающих. Содержание

Комментарий:
  • В 22.01.2013 13:04:31, Аноним

    не работает! у меня выводит только список файлов и все!

  • В 22.01.2013 16:41:55,

    У Вас в IIS настроено отображать не сайт, а файлы. 1. In Features View, double-click Directory Browsing (Просмотр каталога). 2. In the Actions pane (Действия), click Enable if the Directory Browsing feature is disabled and you want to enable it. Or, click Disable if the Directory Browsing feature is enabled and you want to disable it.

  • В 28.02.2013 9:27:03, Аноним

    "Теперь, если Вы привязали домен сайта к северу (указали в A-записи IP адрес сервера), то сайт должен работать" - что за "A-запись"? Расскажите, пож., подробнее, где надо указывать IP-адрес сервера?

  • В 28.02.2013 10:43:03,

    По поводу IP. Вы купили домен у какой-то компании. Эта компания должна Вам предоставить функционал, где нужно указывать, что Ваш сайт находиться на определенном сервере. Т.е. заходите на сайт компании, где вы купили домен. Авторизуйтесь на этом сайте, и в личном кабинете должен быть функционал создания "A-записей". Для этой "A-записи" нужно прописать ип адрес сервера. Если вы не знаете, где покупали домен, то напишите у гугле "whois domain", перейдите на любой сайт, который Вам расскажет кому принадлежит домен. Спрашивайте если есть вопросы.

  • В 01.03.2013 8:34:45, Аноним

    Спасибо за ответ, но вопросы есть ещё есть. У себя на машине чтобы пока обойтись без DNS-сервера прописал в hosts: 127.0.0.1 myproject.com.ru 127.0.0.1 www.myproject.com.ru Сайт работает - аж душа поёт. Но когда попробовал увидеть свой сайт на др. компах в моей ЛВС, прописав у них в hosts: 10.5.54.30 myproject.com.ru 10.5.54.30 www.myproject.com.ru Где 10.5.54.30 - мой локальный IP. Сайт удалённо не отображается. Может у IIS есть какая-нить настройка - типа "работать удалённо или нет" для сайта или для всего сервера в целом по аналогии с Apache?

  • В 01.03.2013 8:36:32, Аноним

    Все компы, на кот. пытаюсь посмотреть сайт находятся в "WORKGROUP"...

  • В 01.03.2013 9:02:22,

    Для начала нужно убедиться, что компьютеры видят друг друга (ping 10.5.54.30 проходит, или общие папки видны). У сайта есть настройка, на каких IP-адресах он будет работать на сервере, как правило ставят "*" - что означает все допустимые IP-адреса www.aspnet.com.ua/userfiles/ipsite.png

  • В 01.03.2013 12:10:34, Аноним

    Про настройку в курсе - спасибо! Всё, проблема решена - виной всему брандмауэр, который я думал, что отключил, на самом деле - нет. После отключения всё заработало.

  • В 06.04.2014 11:01:12, Максим И

    Добрый день. Мне нужно перенести сайт asp.net на хостинг моего сервера 2008 Р2, есть БД MS SQL Я скопировал папки с фтп. А вот далее у меня начинаются проблемы. Я так,понял что надо запустить visual studio и там создать веб-сайт? Или подскажите, как мне выйти на Solution Explorer?

  • В 06.04.2014 13:54:19,

    Что бы Вам помочь, мне нужно знать: 1) Являетесь ли вы программистом? 2) Вы удалено можете зайти на сервер? или он вам доступен только через ftp? 3) Какого расширения у Вас файлы базы данных? (*.bak, *.mdf, *.ldf) 4) В какие файлы и папки у вас для сайта (если файлы "*.cs", ".csproj")?

  • В 07.04.2014 9:52:32, Максим И

    Леонид. 1 Да я программист 2 Могай зайти и на фтп и на сервер 3 Bak 4 Есть Я Вам написал на почту

  • В 28.12.2014 13:05:01, Аноним

    Добрый вечер! Извиняюсь за глупый вопрос, у меня есть рабочий проект на asp.net C# который удачно работает на виртуальном хостинге могу ли я перенести этот сайт VPS сервер предварительно установив windows 2003 и имея оплаченный домен?

  • В 29.12.2014 9:14:13,

    Добрый день, не все сайты будут работать на windows 2003 (ей уже больше 10 лет!). В целом перенос реален, главное что бы на сервере стояли все необходимые программы (база данных, IIS).

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве