Я хочу знать, есть ли рекомендуемый способ определения, работает ли приложение asp локально. В настоящий момент я использую объект Request и выполняю строковый поиск для localhost или 127.0.0.1 на переменной сервера, но это имеет несколько ограничений. Самый большой из них заключается в том, что объект Request не всегда доступен, когда мне это нужно.
Определить, запущено ли приложение ASP.NET локально
Ответ 1
bool isLocal = HttpContext.Current.Request.IsLocal;
Ответ 2
Вы можете проверить свойство Request.IsLocal
Ответ 3
Request.IsLocal - это то же самое, что и проверка для 127.0.0.1 или:: 1. См. Это сообщение: http://forums.asp.net/p/1065813/4081335.aspx.
Ответ 4
Это работало для меня с Application_Start
if (!HostingEnvironment.IsDevelopmentEnvironment)
{
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
}
Чтобы узнать больше о том, как IsDevelopmentEnvironment установлен, просмотрите следующий поток.
В ASP.NET, что определяет ценность HostingEnvironment.IsDevelopmentEnvironment?
Ответ 5
Запрос не всегда доступен в среде ASP.NET?
HttpContext и его свойства Request/Response инициализируются, как только сервер начинает обрабатывать страницу. Поэтому в любом месте вы можете выполнить код С# в жизненном цикле вашей страницы, вы должны проверить URL-адрес запроса.
Ответ 6
Если HttpContext.Current не имеет значения null,
HttpContext.Current.Request.IsLocal
В противном случае, например, в App_Start или до HttpContext.Current, вы можете протестировать
HostingEnvironment.ApplicationPhysicalPath.StartsWith(@"C:\")
или выделенный диск на вашем ПК.
Другим способом может быть использование постоянной переменной компиляции, установленной в процессе производства, например, из Azure и visualstudio.com, если вы их используете.
Он грязный, но он работает.