porta microsoft management azure azure-compute-emulator

azure - microsoft - ¿Cómo puedo determinar si estoy ejecutando localmente en mi PC o en la nube?



panel azure login (4)

¿Utilizo MVC3 y me gustaría determinar si estoy ejecutando localmente o implementando en la nube?



Puede hacerlo a la antigua usanza, buscando la existencia de una Variable de entorno.

Establezca el valor de su variable de entorno en propiedades de la computadora y léala usando Environment.GetEnvironmentVariable ("MyVariable").

En Azure, la variable no estará presente, por lo que la llamada devolverá nulo.


RoleEnvironment.IsAvailable te dice si estás ejecutando en Windows Azure, pero no diferencia entre el Windows Azure real y el simulador de desarrollo local.

Escribí una publicación de blog que muestra un truco para averiguar si se está ejecutando en Windows Azure real o simulado, cuando RoleEnvironment.IsAvailable == true - con suerte eso proporciona lo que está buscando.

EDITAR: En caso de que quiera el código down-n-dirty que describo en la publicación mencionada anteriormente, sin ninguna explicación de por qué funciona la técnica:

private bool IsRunningInDevFabric() { // easiest check: try translate deployment ID into guid Guid guidId; if (Guid.TryParse(RoleEnvironment.DeploymentId, out guidId)) return false; // valid guid? We''re in Azure Fabric return true; // can''t parse into guid? We''re in Dev Fabric }

EDIT 2 : Mi respuesta está un poco desactualizada. Ahora está RoleEnvironment.IsEmulated , que es mucho más sencillo de usar. La documentación de MSDN está aquí


Esto es lo que uso

public static class Azure { private static bool m_IsRunningAzure = GetIsRunningInAzure(); private static bool GetIsRunningInAzure() { Guid guidId; if (RoleEnvironment.IsAvailable && Guid.TryParse(RoleEnvironment.DeploymentId, out guidId)) return true; return false; } public static bool IsRunningInAzure() { return m_IsRunningAzure; } private static bool m_IsRunningAzureOrDevFabric = GetIsRunningInAzureOrDevFabric(); private static bool GetIsRunningInAzureOrDevFabric() { return RoleEnvironment.IsAvailable; } public static bool IsRunningInAzureOrDevFabric() { return m_IsRunningAzureOrDevFabric; } }