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?
Aquí hay algunas sugerencias: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/8fd96850-7a04-401b-89d5-ba153c1b4c51
- Variable ambiental
- deploymentID
- nombre de la computadora
- Punto final del servicio de almacenamiento de Windows Azure
Mirándolos, creo que estaría tentado de mirar la variable de entorno AZURE_DRIVE_DEV_PATH, pero no hay garantía de que esto funcione en futuras versiones de SDK.
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;
}
}