2013-02-27 3 views
1

Я создаю проект облачного облака, который имеет веб-роль. Веб-роль содержит веб-API, и мои коллеги тестировали эти API через удаленный компьютер. Поэтому, когда я запускаю проект на VS, запускается эмулятор, а веб-роль размещается в IIS. Но как только я прекращаю проект на VS, эмулятор также удаляет веб-роль из IIS. Очевидно, почему это происходит, но есть ли способ, которым я могу постоянно поддерживать роль веб-роли на эмуляторе и одновременно работать над кодом в моем VS. Поскольку мне становится очень сложно, что всякий раз, когда мои коллеги хотят протестировать API-интерфейсы, мне приходится прекращать работу над VS.Как сохранить лазурирующую веб-роль на IIS во время работы над VS2012 одновременно?

Есть ли какая-нибудь работа или решение для этого?

Благодаря

EDIT:

ServiceConfiguration.Local.cscfg

<ConfigurationSettings>  
    <Setting name="StorageConnectionString" value="UseDevelopmentStorage=true" /> 
<ConfigurationSettings> 

Web Роль:

var cloudStorageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString")); 
+0

Я хотел бы предложить вам для процесса развития, чтобы не полагаться на эмуляторе Azure, но использовать локальный сервер IIS установлен вместо этого. Ваш процесс разработки будет быстро расти, когда вам не придется ждать, пока эмулятор начнет работу, и вы, надеюсь, научите себя центрировать свой зависимый от Azure код в центральном месте. – JustAnotherUserYouMayKnow

+0

Но моя роль в Интернете зависит от таблиц в хранилище разработки azure. Поэтому я должен запускать его на эмуляторе только в противном случае, если я запускаю только на IIS, тогда я не могу использовать таблицы. Могу я? – Bitsian

+0

Вы смешиваете эмулятор памяти и вычислительный эмулятор. Это совершенно разные вещи. – JustAnotherUserYouMayKnow

ответ

1

Есть несколько подходов можно принять:

  1. Возможно, члены команды проверили API на тестовом развертывании, а не на вашей машине разработки. Например, вы можете использовать дополнительный небольшой экземпляр веб-роли, запущенный на Azure. В Visual Studio вы можете использовать функцию Web Deploy для быстрого обновления этого экземпляра с помощью нового кода. Это может занять всего пару секунд, чтобы ваши изменения изменились. Такой подход имеет дополнительное преимущество, которое не повлияет на тесты ваших коллег, нарушая изменения, которые вы делаете во время разработки (например, если ваш проект находится в состоянии, которое не компилируется или работает должным образом).

  2. На вашем компьютере можно запустить два экземпляра Visual Studio: один из них выполняет роль веб-сайта в режиме отладки на эмуляторе Azure, а другой - в режиме разработки.

  3. Вы можете настроить свой проект в Visual Studio для интеграции с IIS, чтобы он мог выполняться через сервер IIS вашего компьютера (вне эмулятора Azure). Ваш код по-прежнему может получить доступ к службе эмулируемых таблиц, пока работает эмулятор хранилища Azure. На самом деле даже проект WinForms или консоли может использовать службы эмулятора хранилища. Сам клиентский код не должен запускаться под эмулятором Azure (это два разных отдельных эмулятора). В этом случае вы не получите строку подключения к хранилищу из конфигурации веб-роли, а из конфигурации приложения, такой как Web.config или App.config.

Я бы рекомендовал подход 1, т. Е. Иметь отдельную тестовую среду. Вы могли бы даже запустить с ней автоматические тесты интеграции. У вас будет дополнительное преимущество при работе на Azure, а не на эмуляторе. Есть несколько различий в поведении, и таким образом вы обнаружите их раньше в своем жизненном цикле.

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

+0

Спасибо, отличный ответ должен сказать! – Bitsian

+0

Я думаю, что для подхода 1 нам нужна лазурная учетная запись? я угадываю его бесплатно, поэтому я получу его! – Bitsian

+0

Для подхода 3, я думаю, мне нужно поместить строку подключения хранения в веб-конфигурацию. Я поставил код того, как я ссылался на строку подключения к хранилищу, когда я развертывал проект в eumlator. В любом случае, мне не нужно изменять способ доступа к строке подключения к хранилищу при развертывании iis в iis? – Bitsian

1

Рассмотреть вопрос о создании непрерывной доставки: Continuous delivery to Windows Azure by using Team Foundation Service

Преимущества:

  • После каждого заезда (или каждый день ...) ваше приложение будет развернуто автоматически облачной службы. Таким образом, ваши другие разработчики могут использовать эту версию для работы с API.
  • Вы можете продолжать развиваться локально без хлопот
+1

Спасибо, будет использовать эту функцию, если я решит пойти с 1-м решением, упомянутым Фернандо – Bitsian

+0

Эй! Я публиковал в windows azure через обычную функцию публикации в VS и каждый раз публиковал весь проект, а не просто публиковал изменения. TFS публикует только изменения (это быстрее?) Или есть ли какой-либо инструмент, который публикует только изменения в Azure? – Bitsian