Как проверить, работает ли код на сайтах Azure

Я знал, что мы можем использовать RoleEnvironment.IsAvailable, чтобы проверить, работает ли код в роли Web/Worker. Как насчет Azure Websites?

Я попробовал вышеуказанный код RoleEnvironment, но всегда возвращает false. Мне нужно запустить некоторый код конфигурации в Application_Start, поэтому я не могу зависеть от материала запроса.

Любая помощь приветствуется.

Ответы

Ответ 1

На самом деле очень просто проверить наличие этой переменной среды: WEBSITE_SITE_NAME.

!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME"))

Содержимое для этого будет именем вашего сайта.

Чтобы увидеть дополнительную переменную окружения, которая у вас есть на вашем сайте, перейдите по следующей ссылке: https://{sitename}.scm.azurewebsites.net/Env

Ответ 2

Вы не можете (легко).

С помощью лазурных веб-сайтов ваш сайт работает в IIS. RoleEnvironment всегда будет false, потому что там не инициализируется. Посмотрите на веб-сайты Azure, как на обычный хостинг. Можете ли вы сказать, работает ли ваш сайт в хостинге XYZ или в вашем собственном IIS?

Одна вещь, которую вы могли бы рассмотреть, - это настройки приложения в вашем web.config(да, раздел appSettings) и некоторые параметры, указывающие, запускаете ли вы на WebSites или нет. Прочтите полную статью о настройках приложения в Azure WebSites, чтобы понять, что я имею в виду. Короче: если вы установите значение параметра через портал, оно будет иметь приоритет над тем, что находится в web.config. Вы даже можете просто установить его в Portal, не имея его в вашем web.config.