2014-04-25 1 views
1

Я искал попытку получить твердую информацию о том, как это сделать. Большая часть информации, которую я нашел, рассказывает о Web Deploy из Visual Studio 20xx, но я не уверен, является ли это предпочтительным методом. Я хочу иметь возможность «установить» веб-сайт/веб-приложение MVC для постановки, затем после тестирования/исправления цикла исправления, выполнить другую сборку и установить ее в производственной среде. Как все это делают? Кажется довольно странным, что документация настолько свободна и ограничена. Разве это не все, что делают все компании ASP.NET dev? Может ли кто-нибудь объяснить мне лучший подход для развертывания и обновления веб-приложений для Win2008 IIS 7.5? В основном я ищу красиво упакованного установщика.Развертывание приложения ASP MVC на сервере под управлением Windows 2008 с использованием IIS 7.5

+0

Вы также можете строить свои проекты вручную, используя 'MSBUILD' из командной строки, то есть то, что мы делаем на нашем сервере сборки используя слегка измененную версию «Пакет-Веб»: http://sedodream.com/2011/12/24/PackageOncePublishAnywhere.aspx, которая позволяет установить пакет nuget, позволяющий публиковать один раз построенный проект в разных средах. (Но вы также можете обойти установку nuget, она просто устанавливает некоторые дополнительные файлы msbuild для подключения к строительному процессу, сначала кажется волшебством, но настраивается для ваших нужд;) – DrCopyPaste

+0

Ну, я думаю, у меня есть сервер правильно настроен для размещения веб-развертывания, но когда я пытаюсь выполнить развертывание из VS2013, я получаю сообщение об ошибке «Не удалось загрузить файл или сборку» Microsoft.Web.Deployment, Version = 9.0.0, Culture = neutral, PublicKeyToken = xxxx или одна из его зависимостей. Система не может найти указанный файл ». Означает ли эта ошибка, что на локальной машине, которую я пытаюсь опубликовать, отсутствует DLL или удаленный сервер? У меня есть полная премия vs2013, почему эта DLL будет отсутствовать? – u84six

ответ

0

Для этого мы используем встроенную Visual Studio web publishing и объединяем его с web.config transformations для развертывания соответствующей конфигурации (настройки, строки подключения и т. Д.) Для каждой среды.

После настройки это действительно так же просто, как выбрать профиль публикации, который вы хотите, и нажать «Опубликовать».

+0

Итак, вы запускаете VS с вашего сервера сборки и выходите на стадию, а также в производство? – u84six

+0

Очевидно, что серверы для создания и производства должны быть правильно настроены для поддержки веб-публикации. Итак, для сервера вы вручную создаете веб-сайт и включаете его для развертывания в Интернете? – u84six

+0

Мы публикуем непосредственно из Visual Studio. Не задействован сервер сборки. – Simon

2

Существует несколько способов публикации веб-сайта. Решение зависит от многих факторов, таких как публикация внутри или снаружи. Если вы создаете установку для третьих сторон для установки на своих собственных серверах и т. Д.

Если у вас есть прямой файловой системы (то есть доступ к сети), доступ к вашим веб-серверам, и вас не интересует формальная сборка процесс с отдельными серверами сборки и т. д., тогда использование встроенной функции веб-публикации Visual Studio является самым простым методом. Вы просто публикуете непосредственно в файловой системе виртуального каталога вашего веб-сайта. Это работает очень хорошо и поддерживает большинство сценариев из коробки.

Если, однако, вы являетесь более крупной организацией и хотите больше элементов управления. Затем вы можете установить WebDeploy на сервер и публиковать из Visual Studio с помощью агента WebDeploy, хотя WebDeploy сложно настроить и не задокументировать. WebDeploy также может использоваться вне Visual Studio и имеет очень богатый набор функций.

Некоторые люди используют контроль версий для развертывания на своих сайтах. Они выполняют сборку, затем проверяют ее на контроль версий, а затем «получают последние» в виртуальный каталог серверов. Это дает им возможность легко вернуться к предыдущим версиям или указать время.

Другие используют создание и развертывание таких инструментов, как MSBuild, OctopusDeploy, Чак Норрис, и т.д. ...

Третьи используют непрерывные инструменты интеграции, которые могут использовать некоторые из инструментов, которые я уже упоминал. CI-серверы, такие как TeamCity, CruiseControl.net и т. Д.

Существует огромное количество информации и множество способов сделать это ... так как большая часть из них - это личный выбор и зависит от вашей ситуации, мы не можем окончательно сказать «сделать это» или «сделать это».

+0

У меня есть настройка сервера с веб-развертыванием и агент, и все работает, но я не могу развернуть из VS2013, потому что он дает мне недостающую ошибку dll (см. Мой комментарий выше). У меня VS2013 Premium, поэтому я не уверен, почему DLL отсутствует. – u84six

+0

@ u84six - Очевидно, вы использовали установщик веб-платформы для установки WebDeploy в IIS. По-видимому, это является причиной этой ошибки. Вам необходимо загрузить установку WebDeploy вручную в IIS. http://www.iis.net/downloads/microsoft/web-deploy Загрузите соответствующую версию x86 или x64, а не WebPI –

+0

На самом деле мне пришлось установить Web Deploy на клиентской машине (той, которая работает VS2013), чтобы она загрузить отсутствующую зависимость. Это довольно странно, потому что я использую один и тот же процесс развертывания в Интернете из дома с использованием той же версии VS2013, и мне не пришлось устанавливать зависимость развертывания Web. Это единственное, что меня озадачило. – u84six

1

Хорошо, у меня развернуто веб-развертывание между удаленным хостом (Windows Server 2008 R2) и клиентом, работающим под VS2013. Я нашел отличный сайт, в котором есть пошаговое руководство.

Installing and using Web Deploy on server 2012

Это относится к серверу Windows, 2012, но также работал на Win 2008

После того как я прошел через все, развертывание не удалось с ошибкой: «Не удалось загрузить файл или сборку«Microsoft.Web. Развертывание, версия = 9.0.0.0 ..."

Чтобы решить эту проблему, я скачал и установил последнюю версию пакета Web Deploy на компьютере под управлением VS 2013. В то время, последняя версия была 3.5:

Web Deploy 3.5

Это приходит с зависимостью dll, что необходимо для клиента. Что странно, так это то, что мне не нужно было делать эту часть на моей домашней машине с той же версией VS 2013, поэтому я не знаю, почему это было необходимо в этом конкретном случае.

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

Edit: Я также нашел большое руководство по устранению неисправностей, которые помогли мне решить проблему: Web Deploy Troubleshooting

+0

Фантастический. Благодарю. – George