Desidero sapere se esiste un metodo consigliato per determinare se un'applicazione ASP è in esecuzione localmente. Al momento utilizzo l'oggetto Request e faccio una stringa di ricerca per localhost o 127.0.0.1 sulla variabile del server ma questo ha diverse limitazioni. Il più grande è che l'oggetto Request non è sempre disponibile quando ne ho bisogno.Determinare se l'applicazione ASP.NET è in esecuzione in locale
risposta
Vedere HttpRequest.IsLocal
bool isLocal = HttpContext.Current.Request.IsLocal;
È possibile controllare la proprietà Request.IsLocal
richiesta non è sempre disponibile in ambiente ASP.NET?
HttpContext e le relative proprietà Richiesta/Risposta vengono inizializzate non appena il server inizia l'elaborazione della pagina. Quindi in qualsiasi posto puoi eseguire codice C# nel tuo ciclo di vita della pagina dovresti essere in grado di controllare l'url della richiesta.
Request.IsLocal equivale a verificare 127.0.0.1 o :: 1. Vedi questo post: http://forums.asp.net/p/1065813/4081335.aspx.
Sì, ma l'utilizzo di una chiamata di libreria standard trasmette meglio l'intenzione del codice, IMO. Preferirei usare la libreria piuttosto che scrivere il mio codice per fare una cosa così semplice. – Sean
Sono d'accordo. Volevo solo sottolineare che, poiché la risposta designata potrebbe essere lo stesso codice usato da quello utilizzato dal poster, la risposta potrebbe avere gli stessi limiti. – ZLA
Questo link non è corretto. Se colpisco il mio server localmente tramite il suo indirizzo IP, HttpContext.Current.Request.IsLocal restituisce correttamente true, ma UserHostAddress è l'indirizzo IP reale, non 127.0.0.1 (o :: 1). Testato su .NET 4. – mhenry1384
Se HttpContext.Current non è uso nullo
HttpContext.Current.Request.IsLocal
In caso contrario, per esempio nel App_Start o prima HttpContext.Current è disponibile, è possibile testare
HostingEnvironment.ApplicationPhysicalPath.StartsWith(@"C:\")
o un disco dedicato sul tuo PC.
Un altro modo può essere utilizzare una variabile di compilazione costante impostata in produzione, ad esempio da Azure e visualstudio.com se li si utilizza.
È sporco, ma funziona.
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, what determines the value of 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;
- 1. Determinare se script Python è in esecuzione in locale o come CGI
- 2. Come determinare se l'app è in esecuzione sul server di sviluppo Python locale?
- 3. Determinare se il programma è in esecuzione su Windows Server
- 4. Determinare se ASP.Net è registrato correttamente
- 5. Determina se l'app è in esecuzione o no
- 6. Scoprire se l'attività Android è in esecuzione
- 7. Come determinare se i test PHPUnit sono in esecuzione?
- 8. In ASP.NET Core come si controlla se la richiesta è locale?
- 9. Come verificare se nginx è in esecuzione o no?
- 10. Posso determinare se Matlab è in esecuzione come con privilegi elevati in Windows?
- 11. Xcode/iOS: come determinare se il codice è in esecuzione in DEBUG/RELEASE?
- 12. Se Notepad.exe è in esecuzione, taskkill se non è in esecuzione, passare all'istruzione successiva
- 13. Come determinare quale service pack è in esecuzione Visual Studio?
- 14. SQL Job Agent: Determinare quanto tempo è stato in esecuzione
- 15. Come rilevare se webpack-dev-server è in esecuzione?
- 16. Rileva se Celery è disponibile/in esecuzione
- 17. Verifica se l'applicazione è in esecuzione - InstallJammer
- 18. Come controllare se l'applicazione è in esecuzione
- 19. Determinare se il plug-in InnoDB è installato in MySQL
- 20. C'è un modo per determinare se l'app per Android è in esecuzione a schermo intero?
- 21. WatchKit iOS - come determinare se il codice è in esecuzione nell'estensione dell'orologio o nell'app
- 22. API per determinare se l'app è in esecuzione su Citrix o Servizi terminal
- 23. Posso determinare se una funzione di PowerShell è in esecuzione come parte di una pipeline?
- 24. Come determinare se il metodo è asincrono in fase di esecuzione
- 25. Come determinare se un codice Swift è in esecuzione all'interno di XCode Playground
- 26. Come determinare se il codice è in esecuzione come script o funzione?
- 27. C'è un modo per determinare se una funzione è in esecuzione nel documento pronta o no?
- 28. Come determinare se un computer è in esecuzione XP Service Pack 3
- 29. Come determinare se Rails è in esecuzione da CLI, console o come server?
- 30. Determinare se una funzione è disponibile in un modulo Python
Che dire dove richiesta è nullo. e: Application_start? – mmtemporary
@mmtemporary durante Application_Start non c'è richiesta, non c'è motivo di verificare se Request.IsLocal o meno. Se si desidera utilizzarlo su Global.asax, è consigliabile utilizzarlo all'interno di Application_BeginRequest. –
@ViniciusRocha In alcuni scenari vogliamo verificare che quando Richiesta è nullo. – mmtemporary