Can I detect if my code is executing in an Azure worker role?
azure, c#
Solution
You can check for the presence of the RoleRoot environment variable (for Cloud Services at least):
- MSDN
Or, why not simply add a setting to your config (AppSettings or Service Configuration):
<appSettings>
...
<add key="AppEnvironment" value="Azure.CloudService|Azure.Website" />
</appSettings>
Then you can simply check if the setting exists with a specific value to see where you're running. This also means that during your (automated) build or deploy process you'll need to include this setting (this is possible with XDT for example).
Problem
I have some shared assemblies/projects that are used within Winforms apps, windows services and now Azure worker roles. Is there any way that I can detect at runtime if I am running in an Azure role. I have found how you can detect if running Azure emulator or not: ``` Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.IsEmulated ``` But this does not do what I want. I would also prefer not to have to add references to any of the Azure assemblies in my shared assemblies. Ideally I would like something similar to what I use to detect if running as a console vs a service: ``` System.Environment.UserInteractive ``` Is there anything that gives me this logic?