어떤 디버그 스위치를 사용할 수 있는지 어떻게 알 수 있습니까?아니면 스위치가 비활성화되어 있는지 알아 내셨습니까?

StackOverflow https://stackoverflow.com/questions/33334

  •  09-06-2019
  •  | 
  •  

문제

질문 에서 대답은문제의 원인이 된 외부 헤더를 비활성화하는 디버거가 선택한 스위치.Microsoft 도움말은 이러한 전환이 사용자가 생성 한 것이며 스위치를 나열하지 않음을 의미합니다. 라코 디스

내가 알고 싶은 것은 "Remote.Disable"값의 출처와 다른 기능을 켜거나 끌 수있는 방법을 찾는 방법입니다.현재는 구성 마법 일 뿐이며 마법을 좋아하지 않습니다.

도움이 되었습니까?

해결책

의심대로 Remote.Disable은 앱이 원격 요청에 디버그 정보를 첨부하는 것을 중지합니다. SOAP 요청을 만드는 .NET 프레임 워크 메서드 내부에 정의되어 있습니다.

기본 상황은 이러한 스위치를 코드의 어느 위치에서나 정의 할 수 있다는 것입니다. 지정된 이름으로 새 System.Diagnostics.BooleanSwitch를 생성하기 만하면 구성 파일이이를 제어 할 수 있습니다.

이 특정 항목은 System.ComponentModel.CompModSwitches.DisableRemoteDebugging에 정의되어 있습니다. 라코 디스

귀하의 경우에는 System.Web.Services.Protocols.WebClientProtocol에서 호출하는 System.Web.Services.Protocols.RemoteDebugger.IsClientCallOutEnabled () 에서 호출되었을 수 있습니다. NotifyClientCallOut System.Web.Services.Protocols.SoapHttpClientProtocol 의 Invoke 메서드에 의해 차례로 호출됩니다.

불행히도, 제가 아는 한, 프레임 워크를 디 컴파일하고 검색하기에는 부족합니다. 라코 디스

또는 System.Diagnostics.Switch 클래스의 다른 상속자, 정의 된 스위치를 알 수있는 쉬운 방법은 없습니다. 특정 케이스에 대해 msdn / google / stack overflow를 검색 한 경우 인 것 같습니다

이 경우 방금 Reflector를 사용하고 Remote.Disable 문자열을 검색했습니다

다른 팁

Reflector를 사용하여 Switch 클래스 및 하위 클래스 (BooleanSwitch, TraceSwitch 등)의 사용을 검색 할 수 있습니다.다양한 스위치는 이름으로 하드 코딩되어 있으므로 AFAIK 어딘가에 마스터 목록이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top