Domanda

Vorrei sapere se esiste un metodo consigliato per determinare se un'applicazione ASP è in esecuzione a livello locale. Al momento ho utilizzare l'oggetto Request e fare una ricerca per la stringa di localhost o 127.0.0.1 sulla variabile del server, ma questo ha diversi limiti. Il più grande è che l'oggetto Request non è sempre disponibile quando ne ho bisogno.

È stato utile?

Soluzione

HttpRequest.IsLocal

bool isLocal = HttpContext.Current.Request.IsLocal;

Altri suggerimenti

È possibile controllare la proprietà Request.IsLocal

Questo ha funzionato per me con Application_Start

if (!HostingEnvironment.IsDevelopmentEnvironment)
{
      GlobalFilters.Filters.Add(new RequireHttpsAttribute());
}

Per saperne di più su come IsDevelopmentEnvironment è impostato, si prega di guardare il seguente thread.

In ASP.NET, ciò che determina il valore di HostingEnvironment.IsDevelopmentEnvironment?

In una vista MVC / pagina ASP / codice dietro classe:

bool isLocal = HttpContext.Current.Request.IsLocal;

In un controller MVC:

bool isLocal = Request.IsLocal;

Request.IsLocal è lo stesso che il controllo di 127.0.0.1 o :: 1. Vedi questo post: http://forums.asp.net/p/1065813/4081335. aspx .

Se non è HttpContext.Current uso nullo

HttpContext.Current.Request.IsLocal

In caso contrario, per esempio nel App_Start o prima HttpContext.Current è disponibile, è possibile verificare

HostingEnvironment.ApplicationPhysicalPath.StartsWith(@"C:\")

o un disco dedicato sul proprio PC.

Un altro modo può essere utilizzare una variabile costante compilation impostato in produzione, per esempio da Azure e visualstudio.com se li si usa.

E 'sporca, ma funziona.

Richiesta non è sempre disponibile in ambiente ASP.NET?

HttpContext e la sua proprietà di richiesta / risposta vengono inizializzati non appena il server avvia l'elaborazione della pagina. Quindi, in qualsiasi luogo è possibile eseguire codice C # nel ciclo di vita della pagina si dovrebbe essere in grado di controllare la richiesta URL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top