Как использовать веб-развертывание для развертывания нескольких сайтов на локальном хосте с разными портами - PullRequest
1 голос
/ 26 июня 2011

У меня есть решение, которое содержит несколько интеграционных тестовых проектов и один проект веб-приложения. каждый интеграционный проект подключается к веб-приложению при выполнении тестов. Я бы хотел, чтобы каждый тестовый проект имел доступ к веб-сайту со своей собственной базой данных. Я пытался использовать функциональность веб-развертывания, встроенную в визуальную студию. Однако я не смог выяснить, что мне нужно добавить в созданный пакет развертывания и / или событие после сборки для тестовых проектов, чтобы объявить порт привязки для веб-сайта при развертывании. Например, я хочу, чтобы интеграционный проект A создал и получил доступ к веб-сайту, расположенному по адресу http://localhost:83, и интеграционный проект B - для создания и доступа к веб-сайту, расположенному по адресу http://localhost:82.. Может кто-нибудь объяснить, пожалуйста:

  1. Нужно ли что-нибудь сделать для пакета развертывания?
  2. Что мне нужно добавить к событиям после сборки для моих проектов интеграции при развертывании пакета, чтобы веб-сайт создавался на правильном порту при сборке проекта?

Обновление: Я хочу развернуть один и тот же сайт в двух разных местах на моей машине, чтобы я мог запускать оба набора интеграционных тестов одновременно.

Обновление 2: Я исследовал инструмент веб-развертывания, и он позволяет вам указать параметры, которые изменяют то, что развертывается, когда вы вызываете его из командной строки. Однако я нашел документацию очень запутанной. http://technet.microsoft.com/en-us/library/dd568968(WS.10).aspx

Обновление 3: Я ожидаю, что это будут два разных сайта, каждый из которых будет указывать на свою базу данных. Если возможно, я бы хотел один пакет, который можно развернуть с помощью msdeploy. Который затем будет вызван в событии после сборки из каждого из проектов тестирования интеграции. Я хотел бы указать строку подключения и место развертывания из сценария пост-сборки проекта интеграции.

Ответы [ 3 ]

0 голосов
/ 25 июля 2011

вы можете попробовать с webdev.server, включенным в visual studio. VisualStudio использует это для запуска веб-сервера при отладке. При этом вы можете запустить веб-сервер в желаемом порту (если порт не используется в настоящее время). Я сделал файл bat для изменения некоторых параметров. проверь это.

:: Начало файла bat

cd C: \ Program Files \ Common Files \ microsoft shared \ DevServer \ 10.0 \ WebDev.WebServer40.exe / порт: 80 / путь: «C: \ PATHTOYOURWEBPROJECT» / vpath: «/ NAMEOFYOURWEBPROJECT»

:: Конец файла летучей мыши

Вы можете получить доступ к: http://localhost:80

Я использую webserver40, но если у вас нет net.4 или vs2010, вы можете попытаться найти webserver [xx version] .exe

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

0 голосов
/ 27 июля 2011

Во-первых, вы подходите к этому неверно.

> Я бы хотел, чтобы каждый тестовый проект имел доступ к веб-сайту с собственным подключением к базе данных.

Кто создает соединение с БД?Ваш веб-сайт или тестовый проект?Чтобы остальная часть вашего вопроса имела смысл, я предполагаю, что это веб-сайт (в противном случае Project A и Project B не могут совместно использовать соединение из коробки).

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

Проекты веб-развертывания предназначены для развертывания на серверах интеграции, что означает, что вы не можете получить к ним доступ с помощью http://localhost..., но с полным полным доменным именем.сервера.

Самое главное, http://localhost:82/myApp и http://localhost:83/myApp - это два разных сайта (если только вы не перенаправляете с одного из них на другой, который сам по себе может вызвать дополнительные проблемы), на котором работает одна и та же кодовая база.

Сказав это, вам нужно будет дважды развернуть свой веб-сайт, а затем все, что вам нужно, это изменить запись конфигурации / настроек в проектах A и B, чтобы они указывали на разные сайты.

Надеюсьэто имеет смысл.

0 голосов
/ 26 июня 2011

Вы можете определить конфигурацию виртуального хоста.
Обратитесь к этому руководству за дополнительной информацией.

http://docs.jboss.org/jbossas/guides/webguide/r2/en/html/ch07.html

...