我知道我们可以使用RoleEnvironment.IsAvailable
检查代码是否在Web / Worker角色中运行。 Azure网站怎么样?
我尝试了上面的RoleEnvironment代码,但它总是返回false。我需要在Application_Start
中运行一些配置代码,所以我不能依赖请求。
感谢任何帮助。
答案 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中设置它。