programing

런타임 중에 asp.net 웹 응용 프로그램이 디버그 모드에 있는지 확인하는 선호하는 방법은 무엇입니까?

padding 2023. 8. 16. 22:02
반응형

런타임 중에 asp.net 웹 응용 프로그램이 디버그 모드에 있는지 확인하는 선호하는 방법은 무엇입니까?

컴파일 시간 동안 다음과 같은 검사를 수행할 수 있습니다.

#if DEBUG
    Log("something");
#endif

하지만 만약에 어떤 것을 확인하는 것이 더 좋겠습니까?debug="false"런타임 중에 Web.config에 설정됩니까?

HttpContext.IsDebuggingEnabled

https://learn.microsoft.com/en-us/dotnet/api/system.web.httpcontext.isdebuggingenabled

경우에 따라 다음이 필요할 수 있습니다.HttpContext.Current.IsDebuggingEnabled(분명하지만 그럼에도 불구하고)

실수로 떠난 것인지 확인할 수 있는 또 다른 비프로그램적 외부 및 경험적 방법이 있습니다.debug=true에 대한 귀책.system.web/compilation아스팔트에Net 웹 사이트(예: web.config에서 이 구성을 사용했는지 여부를 탐지하는 데 사용):

 <system.web>
    <compilation debug="true" targetFramework="xxx"/>

Fiddler와 같은 도구를 사용하여 웹 사이트에 대한 GET 요청을 가로채고 추가와 함께 사이트에 비표준 HTTP 동사를 발행하도록 이 요청을 변경할 수 있습니다.Command: stop-debug머리글.

  • 사이트에 대한 GET 요청을 선택하고 Composer로 끕니다.
  • 로 전환합니다.Raw탭(DEBUG는 표준 HTTP 동사 옵션이 아니기 때문에)
  • 동사 편집 위치GET로.DEBUG
  • 추가 추가Command: stop-debug머리글(쿠키 위), 나머지 머리글 및 쿠키는 제자리에 둡니다.
  • 실행합니다.DEBUG지휘권

웹 사이트에서 200개와 내용을 반환하는 경우OK디버그를 설정한 것을 알 수 있습니다.웹 사이트가 반환됩니다.403 - Forbidden한다면debug꺼짐.

Fiddler Screenshot

CI/CD 빌드 파이프라인에 웹 사이트 빌드가 있는 경우 디버그를 해제하는 가장 좋은 방법은 다음 XDT를 추가하는 것입니다.

<system.web>
  <compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>

(운영 환경에서 디버그를 해제하는 것은 일반적인 보안 감사 요구 사항입니다.)

언급URL : https://stackoverflow.com/questions/16357490/a-preferred-way-to-check-if-asp-net-web-application-is-in-debug-mode-during-runt

반응형