如何检查代码是否在Azure网站上运行

时间:2014-09-05 04:00:30

标签: azure azure-web-sites

我知道我们可以使用RoleEnvironment.IsAvailable检查代码是否在Web / Worker角色中运行。 Azure网站怎么样?

我尝试了上面的RoleEnvironment代码,但它总是返回false。我需要在Application_Start中运行一些配置代码,所以我不能依赖请求。

感谢任何帮助。

2 个答案:

答案 0 :(得分:37)

这实际上非常简单,只需检查是否存在此环境变量:WEBSITE_SITE_NAME

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

此内容将是您网站的名称。

要查看您网站下的更多环境变量,请访问以下链接:https:// {sitename} .scm.azurewebsites.net / Env

答案 1 :(得分:2)

你不能(轻松)。

使用azure网站,您的网站在IIS中运行。 RoleEnvironment将始终为false,因为它未在那里初始化。将Azure网站更像是常规托管。您能否知道您的网站是在XYZ托管中运行还是在您自己的IIS中运行?

您可以考虑的一件事是web.config中的“应用程序设置”(是的,appSettings部分),并且有一些设置指示您是否在WebSite上运行。阅读full article here about App Settings in Azure WebSites以了解我的意思。简而言之:如果您通过门户网站设置设置值,它将优先于web.config中的设置值。您甚至可以在Portal中设置它,而不是在web.config中设置它。