다음을 통해 공유


원격 디버깅 문제 해결

적용 대상: 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 파일에서 프레임워크 버전을 설정해야 할 수 있습니다.

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

일부 시나리오에서는 올바른 프로세스에 수동으로 연결해야 합니다. 시나리오에 대해 프로세스에 연결(Attach to Process)을 사용하고 있으며 예상하는 프로세스가 표시되지 않는 경우:

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

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

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

필수 포트가 열려 있지 않음

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

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

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