如何检测azure应用程序正在开发结构中运行?
我如何检测Azure应用程序是否在开发结构中运行,而不是在“云”中运行 RoleEnvironment.IsAvailable对两者都适用。我想要的东西只有一种情况是真实的 我这样问是因为我希望我的库的用户能够在dev fabric中免费使用我的库。因此,在配置文件中手动放置单独的标识符或标志,并为开发和部署保留两个配置是不可行的。例如: 开发结构没有完全模拟Windows Azure负载平衡器的行为。例如,如果web角色实例中运行的代码从RoleEnvironment.StatusCheck事件处理程序中调用SetBusy方法,以指示角色实例应退出负载平衡器的循环,则在角色状态为RoleInstanceStatus.Busy时,您仍然可以从浏览器访问角色如何检测azure应用程序正在开发结构中运行?,azure,azure-compute-emulator,Azure,Azure Compute Emulator,我如何检测Azure应用程序是否在开发结构中运行,而不是在“云”中运行 RoleEnvironment.IsAvailable对两者都适用。我想要的东西只有一种情况是真实的 我这样问是因为我希望我的库的用户能够在dev fabric中免费使用我的库。因此,在配置文件中手动放置单独的标识符或标志,并为开发和部署保留两个配置是不可行的。例如: 开发结构没有完全模拟Windows Azure负载平衡器的行为。例如,如果web角色实例中运行的代码从RoleEnvironment.StatusCheck事
此外,azure fabric通常在以下条件下运行。因此,您还可以调查System.Environment。对于某些仅在azure fabric中出现的模式(即与Windows azure OS或类似操作系统匹配的特定操作系统版本)。一个选项是查看
RoleEnvironment.DeploymentId
-如果您在开发结构中运行,它应该有一个类似于“部署(n)”的名称,其中n是一些序列号。如果在生产环境中运行,则部署id应类似于Guid
您可以做的另一件事是查看角色的实例名称。在生产中,它应该以\u 0
结尾(表示实例0)。在dev结构中,它将以.0
编辑2013年1月8日-意识到我两年前给出的答案已经过时了!现在还有
roleenEnvironment.I模拟的-查看详细信息。有一个非常简单的技术我已经使用了一段时间-我发现自己经常使用它。诀窍是在您的开发机器上设置一个环境变量,并使用基本的DOS批处理文件(或PowerShell)技术,跳过您不想要的内容(如果该变量存在)。此环境变量不会出现在云中
我在这里写了一篇博客:WindowsAzure 1.5SDK引入了静态bool属性,以通过代码确定角色实例是否在WindowsAzure计算仿真器中运行。
此信息也可以传递给启动任务。史蒂夫·马克思(Steve Marx)有一篇关于这一点的好文章。这是不可靠的,因为它只基于环境变量,对于希望跳过基于此检查的许可的人来说,应该能够轻松设置此变量,因此IsEmulated将返回true。