Quiero saber si hay una forma recomendada de determinar si una aplicación asp se está ejecutando localmente. Por el momento, utilizo el objeto Request y hago una búsqueda de cadenas para localhost o 127.0.0.1 en la variable del servidor, pero esto tiene varias limitaciones. El más grande es que el objeto Request no siempre está disponible cuando lo necesito.Determinar si la aplicación ASP.NET se ejecuta localmente
Respuesta
bool isLocal = HttpContext.Current.Request.IsLocal;
Usted puede comprobar la propiedad Request.IsLocal
Solicitud no siempre está disponible en el entorno ASP.NET?
HttpContext y sus propiedades La solicitud/respuesta se inicializan tan pronto como el servidor comienza a procesar la página. Por lo tanto, en cualquier lugar puede ejecutar el código C# en el ciclo de vida de su página, debería poder verificar la URL de solicitud.
Request.IsLocal es lo mismo que comprobar 127.0.0.1 o :: 1. Ver esta publicación: http://forums.asp.net/p/1065813/4081335.aspx.
Sí, pero el uso de una llamada de biblioteca estándar transmite mejor la intención del código, IMO. Preferiría usar la biblioteca en lugar de escribir mi propio código para hacer algo tan simple. – Sean
Estoy de acuerdo. Solo quería señalar que dado que la respuesta designada puede ser el mismo código que el póster, la respuesta puede tener las mismas limitaciones. – ZLA
Ese enlace no es correcto. Si presiono localmente mi servidor a través de su dirección IP, HttpContext.Current.Request.IsLocal devuelve correctamente true, pero UserHostAddress es la dirección IP real, no 127.0.0.1 (o :: 1). Probado en .NET 4. – mhenry1384
Si HttpContext.Current no es nula utilización
HttpContext.Current.Request.IsLocal
De lo contrario, por ejemplo en el App_Start o antes HttpContext.Current está disponible, puede probar
HostingEnvironment.ApplicationPhysicalPath.StartsWith(@"C:\")
o un disco dedicado en su ORDENADOR PERSONAL.
Otra forma se puede utilizar una variable de compilación constante establecida en la producción, por ejemplo desde Azure y visualstudio.com si los usa.
Está sucio, pero funciona.
Esto funcionó para mí con Application_Start
if (!HostingEnvironment.IsDevelopmentEnvironment)
{
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
}
Para saber más sobre cómo se establece IsDevelopmentEnvironment, por favor, mira el siguiente hilo.
In ASP.NET, what determines the value of HostingEnvironment.IsDevelopmentEnvironment?
En una vista MVC/página ASP/código detrás de la clase:
bool isLocal = HttpContext.Current.Request.IsLocal;
En un controlador MVC:
bool isLocal = Request.IsLocal;
- 1. Determine si la aplicación se ejecuta en azul o no
- 2. API para determinar si se ejecuta en iPhone o iPad
- 3. API para determinar si la aplicación se ejecuta en Citrix o Servicios de Terminal Server
- 4. Cómo determinar si la aplicación es la aplicación web
- 5. Determinar si los carriles se ejecuta en un servidor web
- 6. ¿Cómo ejecutar ASP.NET C# aplicación web localmente?
- 7. determinar si pitón se ejecuta en Ubuntu Linux
- 8. Faltan clases si la aplicación se ejecuta durante mucho tiempo
- 9. Cómo determinar si una aplicación web se está ejecutando actualmente
- 10. Cómo determinar si la aplicación actual es de confianza media
- 11. ¿Cómo se ejecuta localmente el servidor web Tornado?
- 12. Determinar si ASP.Net está registrada correctamente
- 13. ¿ASP.Net MVC se ejecuta sobre ASP.NET 2.0?
- 14. Determinar si el script Python se ejecuta de forma local o como CGI
- 15. Singleton se ejecuta en aplicaciones web Asp.Net
- 16. Usuario ASP.NET se ejecuta bajo
- 17. ¿Cómo puedo verificar si una aplicación se ejecuta en Android?
- 18. La aplicación Rails funciona localmente, se bloquea en Heroku
- 19. Determinar si la página es válida en JavaScript - ASP.NET
- 20. Cómo determinar, al iniciar, si la aplicación se bloqueó la última vez que se cerró?
- 21. Cómo determinar la vida del dominio de aplicación ASP.NET
- 22. ¿Cómo puedo determinar si estoy ejecutando localmente en mi PC o en la nube?
- 23. ¿Hay alguna forma de determinar si la aplicación de Android se está ejecutando a pantalla completa?
- 24. Determinar si se ha producido un cambio de día
- 25. C# Comprobar si se ejecuta como administrador
- 26. ¿Cómo determinar en qué CPU se ejecuta un subproceso?
- 27. ¿Cómo usar la transformación de configuración de Visual Studio 2010 cuando se ejecuta/depura localmente?
- 28. ASP.NET Page.OnLoad se ejecuta dos veces
- 29. La aplicación se bloquea cuando se ejecuta con instrumentos
- 30. Se carga mscorlib.dll/mscoree.dll cuando se ejecuta la aplicación .NET
¿Qué hay de donde solicitud es nula. i.e: Application_start? – mmtemporary
@mmtemporary durante el Application_Start no hay solicitud, no hay ninguna razón para verificar si Request.IsLocal o no. Si desea usarlo en Global.asax, considere usarlo dentro de Application_BeginRequest. –
@ViniciusRocha En algún escenario, queremos verificar que cuando Request sea nulo. – mmtemporary