programing

ASP.NET 응용 프로그램이 로컬에서 실행 중인지 확인

nasanasas 2020. 10. 16. 07:31
반응형

ASP.NET 응용 프로그램이 로컬에서 실행 중인지 확인


ASP 응용 프로그램이 로컬에서 실행 중인지 확인하는 권장 방법이 있는지 알고 싶습니다. 현재 Request 개체를 사용하고 서버 변수에서 localhost 또는 127.0.0.1에 대한 문자열 검색을 수행하지만 몇 가지 제한 사항이 있습니다. 가장 큰 것은 Request 객체가 필요할 때 항상 사용할 수있는 것은 아니라는 것입니다.


HttpRequest.IsLocal을 참조하십시오.

bool isLocal = HttpContext.Current.Request.IsLocal;

Request.IsLocal 속성을 확인할 수 있습니다.


이것은 Application_Start와 함께 저에게 효과적이었습니다.

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

IsDevelopmentEnvironment가 설정되는 방법에 대한 자세한 내용은 다음 스레드를 참조하십시오.

ASP.NET에서 HostingEnvironment.IsDevelopmentEnvironment의 값을 결정하는 것은 무엇입니까?


MVC보기 / ASP 페이지 / 클래스 뒤의 코드에서 :

bool isLocal = HttpContext.Current.Request.IsLocal;

MVC 컨트롤러에서 :

bool isLocal = Request.IsLocal;

Request.IsLocal은 127.0.0.1 또는 :: 1을 확인하는 것과 동일합니다. 이 게시물을 참조하십시오 : http://forums.asp.net/p/1065813/4081335.aspx .


HttpContext.Current가 null이 아닌 경우 사용

HttpContext.Current.Request.IsLocal

그렇지 않으면 예를 들어 App_Start에서 또는 HttpContext.Current를 사용할 수 있기 전에 테스트 할 수 있습니다.

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

또는 PC의 전용 디스크.

또 다른 방법은 프로덕션에 설정된 상수 컴파일 변수를 사용하는 것입니다 (예 : Azure 및 visualstudio.com에서 사용하는 경우).

더럽지 만 작동합니다.


ASP.NET 환경에서 요청을 항상 사용할 수있는 것은 아닙니까?

HttpContext 및 해당 속성 Request / Response는 서버가 페이지 처리를 시작하자마자 초기화됩니다. 따라서 언제 어디서나 페이지 수명주기에서 C # 코드를 실행할 수 있으므로 요청 URL을 확인할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/691881/determine-if-asp-net-application-is-running-locally

반응형