다음을 통해 공유


원격 디버깅 문제 해결

적용 대상: Visual Studio

이 문서에서는 원격 디버깅과 관련된 몇 가지 일반적인 문제에 대한 문제 해결 단계 및 솔루션을 소개합니다.

원격 디버깅 문제를 해결하기 위해 첫 번째 단계는 오류 메시지를 검사 조사하는 것입니다. 메시지에는 자세한 정보가 포함된 링크가 포함될 수 있습니다.

다음으로, 디버그하기 전에 서버에서 앱이 올바르게 실행되고 있는지 확인합니다.

그렇지 않으면 가장 일반적인 문제 및 해결 방법은 다음과 같습니다.

설치된 원격 디버거의 잘못된 버전

원격 컴퓨터에 원격 디버거를 수동으로 설치하는 시나리오의 경우 설치된 버전이 Visual Studio 버전과 일치하는지 확인합니다. 원격 디버거를 다운로드하는 현재 링크는 원격 디버거를 참조하세요.

릴리스 빌드는 디버그 빌드 대신 서버에 배포됩니다.

게시 도구 및 기타 게시 옵션에는 설정해야 하는 별도의 디버그 구성 설정이 있습니다. (Visual Studio에서 앱을 실행할 때 디버그 빌드를 선택할 수 있지만 서버에 디버그 빌드를 설치했다는 의미는 아닙니다.)

원격 애플리케이션에 연결할 수 있지만 중단점에 도달할 수 없습니다(또는 디버깅 기호가 로드되지 않음).

이 문제의 경우 기호가 로드되지 않음 메시지가 표시될 수 있습니다.

모듈 창을 사용하여 모듈에 대한 기호 로드 상태 및 디버거가 사용자 코드로 처리하는 모듈 또는 내 코드를 확인할 수 있습니다.

  • 기호 상태 열은 모듈에 대해 기호가 올바르게 로드되었는지 여부를 나타냅니다.
  • 사용자 코드 열은 디버그하려는 모듈이 내 코드로 분류되는지 여부를 나타냅니다. 내 코드로 잘못 표시되는 경우 릴리스 빌드가 서버에 배포되었을 수 있습니다. 릴리스 이진 파일은 최적화되며 내 코드로 간주되지 않으므로 내 코드만 사용하지 않도록 설정하거나 서버에 디버그 빌드를 배포합니다.
  • 사용자 코드 설정이 올바르지만 기호가 로드되지 않은 경우 디버거가 올바른 기호 파일을 사용하고 있는지 확인합니다. 디버거는 앱이 빌드되었을 때 생성된 .pdb 파일(즉, 원래 .pdb 파일 또는 복사본)과 정확히 일치하는 기호(.pdb 파일)만 로드합니다. 원격 Windows 디버깅의 경우 기본적으로 PDB 파일은 서버가 아닌 Visual Studio 컴퓨터에서 읽습니다. 그러나 msvsmon에는 원격 .pdb 파일로 되돌릴 수 있도록 하는 명령줄 인수가 있습니다.

자세한 내용은 중단점 문제 해결을 참조하세요.

(ASP.NET) 서버에서 실행되는 ASP.NET 버전은 앱에 대해 구성된 버전과 동일하지 않습니다.

서버 또는 로컬 컴퓨터에 올바른 버전의 ASP.NET 또는 ASP.NET Core 설치해야 할 수 있습니다. 앱 버전의 ASP.NET 검사 솔루션 탐색기 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 빌드 탭을 확인합니다. 서버에서 ASP.NET 구성은 시나리오와 관련이 있습니다. ASP.NET Framework 앱의 경우 web.config 파일에서 프레임워크 버전을 설정해야 할 수 있습니다.

프로세스에 연결 대화 상자에 필요한 프로세스가 표시되지 않습니다.

일부 시나리오에서는 올바른 프로세스에 수동으로 연결해야 합니다. 시나리오에 프로세스에 연결을 사용 중이고 예상되는 프로세스가 표시되지 않는 경우:

  • 검색 프로세스 필터가 이전에 설정된 경우 삭제해야 하는 경우 검사.
  • 모든 사용자의 프로세스 표시를 선택하여 다른 사용자 계정에서 실행 중인 프로세스를 표시합니다.
  • 느린 연결의 경우 자동 새로 고침을 사용하지 않도록 설정할 수 있습니다.
  • 기본값에서 변경된 경우 연결 유형 및 필드에 연결이 목록에 표시되는 프로세스를 제한 수 있습니다.

올바른 프로세스에 연결하지 않습니다.

프로세스에 연결을 사용하는 경우 올바른 프로세스에 연결하고 있는지 확인합니다. 자세한 내용은 일반적인 디버깅 시나리오를 참조하세요.

필수 포트가 열려 있지 않음

대부분의 ASP.NET 설정에서는 ASP.NET 및 원격 디버거를 설치하여 필요한 포트를 엽니다. 그러나 포트가 열려 있는지 확인해야 할 수 있습니다. 예를 들어 Azure VM 시나리오에서는 원격 디버거 포트 와 서버 포트를 열어야 할 수 있습니다(예: IIS는 포트 80을 사용함).

원격 디버거에 대한 상승된 권한이 필요할 수 있습니다.

일부 시나리오에서는 원격 디버거를 관리자 권한으로 실행해야 할 수 있습니다. 자세한 내용은 관리자 권한으로 원격 디버거 실행을 참조하세요.