Usando MVC3 y me gustaría determinar si estoy ejecutando localmente o implementado en la nube?¿Cómo puedo determinar si estoy ejecutando localmente en mi PC o en la nube?
Respuesta
Esto es lo que yo 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;
}
}
RoleEnvironment.IsAvailable
indica si se está ejecutando en Windows Azure, pero no diferencia entre el Windows Azure real y el simulador de desarrollo local.
Escribí un blog post 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.
EDIT: En caso de que quiera el código abajo-n-sucia que describo en el cargo antes mencionado, sin ninguna explicación de por qué la técnica funciona:
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 es un poco anticuado. Ahora hay , que es mucho más fácil de usar. La documentación de MSDN es here
palabra quizá re esto para dar más importancia a RoleEnvironment.IsEmulated sobre el viejo truco? – Simon
Probablemente se debe tener en cuenta que 'IsAvailable' aún debe examinarse, ya que' IsEmulated' se lanzará si el primero es falso (entorno de función no inicializado). –
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.
Hay algunas sugerencias aquí - http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/8fd96850-7a04-401b-89d5-ba153c1b4c51
- Variable de entorno
- deploymentID
- nombre del equipo
- almacenamiento de Windows Azure extremo de servicio
En cuanto a ellos, creo que Estaría tentado de mirar la variable de entorno AZURE_DRIVE_DEV_PATH, pero hay n o garantizamos que esto funcionará en futuras versiones de SDK.
No había visto ese hilo msdn, gracias por publicarlo. Lo más valioso es la comparación de los valores devueltos cuando se ejecuta en el entorno de desarrollo frente a la producción. La opción 4 probablemente no sea muy práctica, ya que puede acceder al almacenamiento dev o al almacenamiento real desde el entorno de desarrollo. Utilizo la Opción 2, pero como anotaron sobre la exención de responsabilidad con futuras versiones de SDK para inspeccionar la variable de entorno, eso también se aplica a la inspección de la ID de implementación. –
- 1. ¿Cómo puedo verificar si estoy ejecutando Windows en Python?
- 2. Detectando si estoy ejecutando en SharePoint
- 3. ¿Cómo puede mi programa determinar si se está ejecutando en Windows de 32 o 64 bits?
- 4. ¿Cómo puedo usar VBScript para determinar si estoy ejecutando un sistema operativo Windows de 32 o 64 bits?
- 5. Determinar si la aplicación ASP.NET se ejecuta localmente
- 6. ¿Cómo puedo determinar si mi proceso se está ejecutando de forma interactiva?
- 7. Android 2.2 - ¿Cómo puedo detectar si estoy instalado en la tarjeta SD o no?
- 8. ¿Cómo puedo saber si estoy en el depurador en Android?
- 9. En MSBuild es posible determinar si estoy ejecutando en Visual Studio
- 10. Determinar la aplicación de metro se está ejecutando en la pestaña de Windows 8 o PC de escritorio
- 11. ¿Cómo comprobar si estoy en tiempo de ejecución o diseño?
- 12. ¿Cómo puedo detectar si mi código se está ejecutando en la consola en Rails 3?
- 13. ¿Cómo puedo detectar si estoy ejecutándose en la consola?
- 14. ¿Cómo puedo determinar si mi texto TextBlock está siendo recortado?
- 15. ¿Cómo puedo saber si mi aplicación se está ejecutando en una sesión de RDP
- 16. Determine si la aplicación se ejecuta en azul o no
- 17. Determine si mi PC admite HW Virtualization
- 18. ¿Cómo puedo saber si mi script de Perl se está ejecutando en Windows?
- 19. Determinar si el programa se está ejecutando en Windows Server
- 20. ¿Puedo detectar si mi código se está ejecutando en cPython o Jython?
- 21. ¿Cómo puedo determinar si mi convolución es separable?
- 22. ¿Cómo puedo determinar si document.referrer es de mi propio sitio?
- 23. No estoy seguro si tengo los índices correctos o si puedo mejorar la velocidad de mi consulta en MySQL.
- 24. ¿Cómo puedo determinar si intento devolver un error o no?
- 25. ¿Cómo puedo detectar si mi proceso se está ejecutando UAC elevado o no?
- 26. ¿Cómo determinar si UIScrollView crash está en mi código o en Apple?
- 27. En PowerShell, ¿cómo puedo determinar si la unidad actual es una unidad en red o no?
- 28. Cómo determinar si las pruebas PHPUnit se están ejecutando?
- 29. Xcode/iOS: ¿Cómo determinar si el código se está ejecutando en la compilación DEBUG/RELEASE?
- 30. ¿Puedo ejecutar más de una JVM en mi única PC?
Si miraste la publicación de mi blog, como se menciona en mi respuesta, verías esta técnica exacta mostrada y explicada. –