Каков типичный рабочий процесс для помещения моего локального проекта MVC3 на «живой сервер»? - PullRequest
1 голос
/ 21 марта 2011

Я работаю на своей локальной машине с VS2010 и SQL Server. Естественно, мой web.config указывает на мой локальный SQL Server, и я могу отлаживать / разрабатывать, и все хорошо. К сожалению, я не совсем уверен, как развернуть мой код на работающем сервере.

В настоящее время мой работающий сервер состоит из виртуальной машины (мой сайт доступен из Интернета). Когда я готов разместить свои изменения на работающем сервере, я публикую свое приложение (щелкните правой кнопкой мыши на Solution Explorer -> Publish). Затем я перехожу в каталог, в котором он публикуется, и помещаю все файлы в общий сетевой ресурс, который попадает на мой сайт на работающем сервере. При первоначальном копировании мне нужно вручную отредактировать файл web.config, чтобы строка подключения указывала на SQL Server на работающем сервере, а не на моем локальном компьютере. Так что это мой первый камень преткновения. Как мне легко управлять настройками разработки и «живыми» настройками в web.config?

Теперь я также использую контроль версий (Kiln). Могу ли я пометить набор изменений и как-нибудь автоматически развернуть его на моем работающем сервере? Допустим, кто-то отправил ошибку, и я исправил ее. Я нажимаю на свой набор изменений, и теперь у Kiln есть последняя версия моего кода с исправлением ошибки. Как лучше всего передать эти изменения на действующий сервер?

Я не могу найти какую-либо документацию, которая охватывает весь рабочий процесс, но я чувствую, что должен быть лучший путь. Конечно, что-то подобное может быть выполнено без необходимости вручную редактировать файл web.config каждый раз, когда я публикую и молюсь компьютерным богам, чтобы я ничего не пропустил в строке подключения.

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

1 Ответ

0 голосов
/ 21 марта 2011

Как мне легко управлять настройками разработки и «живыми» настройками в web.config?

Re: С преобразованиями web.config VS 2010 это довольно просто. Пожалуйста, посмотрите на этот блог: http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx

Для VS 2008 или более ранней версии у нас было несколько конфигурационных файлов, основанных на среде, и мы использовали для создания конфигурации выпуска Debug / Release / DevTest / UAT / PROD, а затем в событии после сборки, которое мы использовали для замены web.config с конфигурацией релиза на основе конфигурации. Например, если вы строите проект с использованием конфигурации выпуска «Prod», мы копируем файл PROD web.config в папку публикации.

Теперь я также использую контроль версий (Kiln). Могу ли я пометить набор изменений и как-нибудь автоматически развернуть его на моем работающем сервере? Допустим, кто-то отправил ошибку, и я исправил ее. Я нажимаю на свой набор изменений, и теперь у Kiln есть последняя версия моего кода с исправлением ошибки. Как лучше всего перенести эти изменения на работающий сервер?

Re: Контроль исходного кода и публикация на реальном сервере - это две разные вещи. Первый вопрос, который вы задаете здесь, касается того, как вы управляете несколькими выпусками и имеете контроль над исправлениями ошибок для каждого выпуска. Я бы использовал ветку PROD в своем контроле исходного кода, которая будет первой версией, и для каждой основной версии я буду подчиняться ей, чтобы иметь больше контроля над электронными исправлениями.

Что касается другого вопроса о том, как подключить его к работающему серверу, это зависит от вашей среды. Мы делаем это по-разному в зависимости от того, как настроена среда клиента. Если они предоставили нам FTP, мы используем это или иным образом упаковываем приложение в MSI, а затем разворачиваем его в UAT. До тех пор, пока не завершится регистрация UAT, мы продолжаем обновлять MSI. После получения подтверждения MSI переходит к PROD.

Надеюсь, это поможет.

...