Как обнаружить, что Azure Application работает в ткани для развития?

StackOverflow https://stackoverflow.com/questions/2915340

  •  04-10-2019
  •  | 
  •  

Вопрос

Как я могу определить надежность, работает ли мое приложение Azure в ткани для развития, а не в «Облако»?

RoLeenVironment.isavailable является верным для обоих. Я хочу что-то, что верно только в одном случае.

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

Это было полезно?

Решение

Один вариант - взглянуть на RoleEnvironment.DeploymentId - Если вы работаете в ткани Dev, он должен иметь имя, такое как «развертывание (N)», где n - некоторое последовательное число. Если вы работаете в производстве, идентификатор развертывания должен напоминать GUID.

Другая вещь, которую вы можете сделать, это посмотреть на имя экземпляра роли. В производстве он должен закончиться _0 (представляющий экземпляр 0). В ткани Dev, она закончится в .0

Отредактируйте 1/8/2013 - осознал этот ответ, я дал более 2 лет назад вполне устаревшись! Теперь есть также RoleEnvironment.IsEmulated - Проверьте детали здесь.

Другие советы

Windows Azure 1.5 SDK представила RoLeenVironment.isemulate Статическое свойство Bool Чтобы определить из кода, работает ли экземпляр ролей в эмуляторе Windows Azure Compute. Эта информация также может быть передана на задачи запуска. Есть отличная статья от Стива Маркса здесь об этом.

Например:

Ткань развития не полностью имитирует поведение балансировщика нагрузки Windows Azure. Например, если код, работающий в экземпляре веб-роли, вызывает метод SetBusy в рамках обработчика событий RoLeeneenVironment.Statuscheck, чтобы указать, что экземпляр роли должен быть вынесен из ротации балансировщика нагрузки, вы все равно сможете получить доступ к своей роли от вашего Браузер, в то время как его статус является ролейстанцестом. Busy.

Также лазурная ткань обычно работает под одна из немногих фиксированных изображений ОС. Отказ Таким образом, вы также можете исследовать систему. Для некоторых узоров, которые происходят только в лазурной ткани (то есть специфической версии ОС, соответствующие Windows Azure OS или что-то вроде этого).

Существует очень простая техника, которую я использовал некоторое время - и нахожу себя часто. Хитрость состоит в том, чтобы установить переменную среды на вашу Dev Machine и используя методы Basic DOS Batch (или PowerShell), перепрыгнуть над тем, что вы не хотите, если эта переменная присутствует. Эта переменная среды не присутствует в облаке.

Я вспомогал это здесь: FAQ AZURE: Могу ли я создать задачу запуска, которая выполняет только при самом деле в облаке?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top