How can I reliability detect whether my Azure application is running in development fabric and not in 'the cloud' ?
RoleEnvironment.IsAvailable is true for both. I want something that is true in only one case.
I'm asking this because I want users of my library to be able to use my library for free in dev fabric. Hence manually putting separate identifier or flag in config file and keeping two configs for dev and deploy is not feasible.
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
EDIT 1/8/2013 - realized this answer I gave over 2 years ago is quite outdated! Now there's also RoleEnvironment.IsEmulated
- check out the details here.