我如何可靠地检测我的Azure应用程序是在运行结构中运行而不是在"云"中运行?
RoleEnvironment.IsAvailable对两者都适用.我想要的只是一个案例中的事情.
我问这个是因为我希望我的库的用户能够在开发结构中免费使用我的库.因此,手动在配置文件中放置单独的标识符或标志,并为开发和部署保留两个配置是不可行的.
One option is to take a look at RoleEnvironment.DeploymentId
- if you're running in the dev fabric, it should have a name like 'deployment(n)' where n is some sequential number. If you're running in production, the deployment id should resemble a Guid.
Another thing you can do is look at an role's instance name. In production, it should end in _0
(representing instance 0). In the dev fabric, it will end in .0
编辑1/8/2013 - 意识到我2年前给出的这个答案已经过时了!现在有还RoleEnvironment.IsEmulated
-检查出的细节在这里.
Windows Azure 1.5 SDK引入了RoleEnvironment.IsEmulated静态bool属性,以从代码确定角色实例是否在Windows Azure计算模拟器中运行.此信息也可以传递给启动任务.史蒂夫马克思在这里有一篇很好的文章.