una - Determinar si la aplicación ASP.NET se está ejecutando localmente
no se puede conectar con el servidor web iis express (7)
¿La solicitud no siempre está disponible en el entorno ASP.NET?
HttpContext y sus propiedades Request / Response 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.
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.
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;
Esto funcionó para mí con Application_Start
if (!HostingEnvironment.IsDevelopmentEnvironment)
{
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
}
Para saber más sobre cómo se configura IsDevelopmentEnvironment, mira el siguiente hilo.
En ASP.NET, ¿qué determina el valor de HostingEnvironment.IsDevelopmentEnvironment?
Puede verificar la propiedad Request.IsLocal
Request.IsLocal es lo mismo que verificar 127.0.0.1 o :: 1. Ver esta publicación: http://forums.asp.net/p/1065813/4081335.aspx .
Si HttpContext.Current no es un uso nulo
HttpContext.Current.Request.IsLocal
De lo contrario, por ejemplo, en App_Start o antes de que HttpContext.Current esté disponible, puedes probar
HostingEnvironment.ApplicationPhysicalPath.StartsWith(@"C:/")
o un disco dedicado en tu PC.
Otra forma puede ser utilizar una variable de compilación constante establecida en producción, por ejemplo desde Azure y visualstudio.com si los usa.
Está sucio, pero funciona.
bool isLocal = HttpContext.Current.Request.IsLocal;