Visual Studio에서 Azure VM을 사용하여 IIS의 ASP.NET Core를 원격으로 디버그
이 가이드에서는 Visual Studio ASP.NET Core 앱을 설정 및 구성하고 Azure VM을 사용하여 IIS에 배포하며 Visual Studio에서 원격 디버거를 연결하는 방법을 설명합니다.
IIS 시나리오의 경우 Linux는 지원되지 않습니다.
Azure VM에서 IIS를 디버그하려면 이 문서의 단계를 수행합니다. 이 방법을 사용하면 IIS의 사용자 지정 구성을 사용할 수 있지만 설치 및 배포 단계가 더 복잡해집니다. 시나리오에 맞게 IIS를 사용자 지정할 필요가 없는 경우, 그 대신 Azure App Service 앱을 호스트하고 디버그하는 더 간단한 방법을 선택할 수 있습니다.
Azure VM의 경우 다음 그림과 같이 Visual Studio에서 Azure에 앱을 배포하고 IIS 역할 및 원격 디버거를 수동으로 설치해야 합니다.
경고
이 자습서의 단계를 완료했으면 만든 Azure 리소스를 삭제해야 합니다. 그러면 불필요한 요금이 발생하지 않습니다.
이러한 절차는 다음 서버 구성에서 테스트되었습니다.
- Windows Server 2022 및 IIS 10
- Windows Server 2019 및 IIS 10
- Windows Server 2016 및 IIS 10
사전 요구 사항
이 문서에 표시된 단계를 수행하려면 Visual Studio 2019 이상 버전이 필요합니다.
네트워크 요구 사항
프록시를 통해 연결된 두 컴퓨터 간의 디버깅은 지원되지 않습니다. 대기 시간이 길거나 대역폭이 낮은 연결(예: 전화 접속 인터넷) 또는 해외 인터넷을 통해 디버그하는 것은 오류가 발생하거나 지나치게 느릴 수 있으므로 권장하지 않습니다. 요구 사항 전체 목록은 요구 사항을 참조하세요.
앱이 이미 Azure VM의 IIS에서 실행 중인가요?
이 문서에는 Windows Server에서 IIS의 기본 구성을 설정하고 Visual Studio에서 앱을 배포하는 단계가 포함되어 있습니다. 이러한 단계는 서버에 필수 구성 요소가 설치되어 있는지, 앱이 올바르게 실행될 수 있는지, 원격으로 디버그할 준비가 되었는지 확인하기 위해 포함된 것입니다.
앱이 IIS에서 실행 중이고 원격 디버거를 다운로드하여 디버깅을 시작하려는 경우 Windows Server에서 원격 도구 다운로드 및 설치로 이동합니다.
디버그할 수 있도록 IIS에서 애플리케이션이 올바르게 설정, 배포 및 실행되는지 확인하려면 이 문서의 모든 단계를 수행합니다.
시작하기 전에 IIS 웹 서버를 설치하는 단계가 포함된 Windows 가상 머신 만들기에 설명된 모든 단계를 수행합니다.
Azure 네트워크 보안 그룹에서 포트 80을 열어야 합니다. 포트 80이 열렸는지 확인할 때 원격 디버거에 대한 올바른 포트(4026, 4024 또는 4022)도 엽니다. 이렇게 하면 나중에 열 필요가 없습니다. 웹 배포를 사용하는 경우 포트 8172도 엽니다.
Visual Studio 컴퓨터에서 ASP.NET Core 애플리케이션 만들기
새 ASP.NET Core 웹 애플리케이션을 만듭니다.
Visual Studio에서 파일>시작 창을 선택하여 시작 창을 연 다음 새 프로젝트 만들기 선택합니다. 검색 상자에 웹앱을 입력하고 C#을 언어로 선택한 다음 ASP.NET Core 웹 애플리케이션(Model-View-Controller)을 선택한 후 다음을 선택합니다. 다음 화면에서 프로젝트 이름을 MyASPApp로 지정한 후 다음을 선택합니다.
권장되는 대상 프레임워크 또는 .NET 6을 선택한 다음, 만들기를 선택합니다. 버전은 서버에 설치된 버전과 일치해야 합니다.
컨트롤러 폴더에서 HomeController.cs 파일을 열고
Privacy
메서드에서return View;
문에 중단점을 설정합니다.이전 템플릿에서 Privacy.cshtml.cs 파일을 열고
OnGet
메서드에 중단점을 설정합니다.
Windows Server에서 브라우저 보안 설정 업데이트
이전 버전의 Windows Server를 사용하는 경우 일부 웹 서버 구성 요소를 다운로드할 수 있도록 일부 도메인을 신뢰할 수 있는 사이트로 추가해야 할 수 있습니다. 인터넷 옵션 > 보안 > 신뢰할 수 있는 사이트 > 사이트로 이동하여 신뢰할 수 있는 사이트를 추가합니다. 다음 도메인을 추가합니다.
- microsoft.com
- go.microsoft.com
- download.microsoft.com
- iis.net
소프트웨어를 다운로드하는 경우 다양한 웹 사이트 스크립트 및 리소스를 로드하는 권한을 부여하라는 요청을 받을 수 있습니다. 이러한 리소스 중 일부는 필요하지 않지만 프로세스를 간소화하기 위해 메시지가 표시되면 추가를 선택합니다.
Windows Server에 ASP.NET Core 설치
호스팅 시스템에 .NET Core 호스팅 번들을 설치합니다. 번들은 .NET Core 런타임, .NET Core 라이브러리 및 ASP.NET Core 모듈을 설치합니다. 자세한 지침은 IIS에 게시를 참조하세요.
현재의 .NET Core 호스팅 번들에 대해 ASP.NET Core 호스팅 번들을 설치합니다.
참고 항목
이전에 IIS를 설치한 경우 ASP.NET Core IIS 모듈이 ASP.NET Core와 함께 설치됩니다. 그렇지 않으면 ASP.NET Core IIS 모듈을 수동으로 설치합니다.
.NET Core 2의 경우 .NET Core Windows Server 호스팅을 설치합니다.
참고
시스템이 인터넷에 연결되지 않은 경우 Microsoft Visual C++ 2015 재배포 가능 패키지 를 설치한 후에 .NET Core Windows Server 호스팅 번들을 설치합니다.
시스템을 다시 시작하거나 명령 프롬프트에서 net stop was /y에 이어 net start w3svc를 실행하여 시스템 PATH에 대한 변경 내용을 선택합니다.
배포 옵션 선택
IIS에 앱을 배포하는 데 도움이 필요한 경우 다음 옵션을 고려합니다.
IIS에서 게시 설정 파일을 만들고 Visual Studio에서 설정을 가져와서 배포합니다. 일부 시나리오에서는 이 방식이 앱을 배포하기에 가장 빠릅니다. 게시 설정 파일을 만들면 IIS에서 사용 권한이 자동으로 설정됩니다.
로컬 폴더에 게시하고 선호하는 방법으로 출력을 IIS에 준비된 앱 폴더에 복사하여 배포합니다.
(선택 사항) 게시 설정 파일을 사용하여 배포
이 옵션을 사용하여 게시 설정 파일을 만들고 Visual Studio로 가져올 수 있습니다.
참고
이 배포 방법에서는 서버에 설치되어 있어야 하는 웹 배포를 사용합니다. 설정을 가져오는 대신 웹 배포를 직접 구성하려는 경우 호스팅 서버용 웹 배포 3.6 대신 웹 배포 3.6을 설치하면 됩니다. 단, 웹 배포를 직접 구성하는 경우 서버의 앱 폴더가 올바른 값과 권한으로 구성되어 있는지 확인해야 합니다(ASP.NET 웹 사이트 구성참조).
ASP.NET Core 웹 사이트 구성
IIS 관리자의 왼쪽 창에 있는 연결에서 애플리케이션 풀을 선택합니다. DefaultAppPool을 열고 .NET CLR 버전을 관리 코드 없음으로 설정합니다. 이는 ASP.NET Core에 필요합니다. 기본 웹 사이트는 DefaultAppPool을 사용합니다.
DefaultAppPool을 중지했다가 다시 시작합니다.
Windows Server에서 웹 배포 설치 및 구성
웹 배포 3.6은 UI에서 게시 설정 파일을 만들 수 있는 추가 구성 기능을 제공합니다.
참고
웹 플랫폼 설치 관리자는 7/1/22에 수명이 종료되었습니다. 자세한 내용은 Web 플랫폼 설치 관리자 - 제품/애플리케이션 피드 지원 종료를 참조하세요. 웹 배포 4.0을 직접 설치하여 게시 설정 파일을 만들 수 있습니다.
아직 IIS 관리 스크립트 및 도구를 설치하지 않은 경우 지금 설치합니다.
서버 역할 선택>웹 서버(IIS)>관리 도구를 선택한 후, IIS 관리 스크립트 및 도구 역할을 선택하고 다음을 클릭한 다음, 해당 역할을 설치합니다.
스크립트 및 도구를 통해 게시 설정 파일을 생성할 수 있어야 합니다.
또한 관리 서비스 및 IIS 관리 콘솔(이미 설치되어 있을 수 있음)도 설치해야 합니다.
Windows Server에서 웹 배포 4.0을 다운로드합니다.
웹 배포 설치 프로그램을 실행하고 일반적인 설치 대신 설치 완료를 선택해야 합니다.
전체 설치를 통해 게시 설정 파일을 생성하는 데 필요한 구성 요소를 가져옵니다. (사용자 지정을 대신 선택하는 경우 다음 그림과 같은 구성 요소 목록을 볼 수 있습니다.)
(선택 사항)제어판 > 시스템 및 보안 > 관리 도구 > 서비스를 열어 웹 배포가 올바르게 실행되는지 확인한 후 다음을 확인합니다.
웹 배포 에이전트 서비스가 실행 중입니다(이전 버전에서는 서비스 이름이 다름).
웹 관리 서비스가 실행 중입니다.
이러한 에이전트 서비스 중 하나가 실행되지 않으면 웹 배포 에이전트 서비스를 다시 시작합니다.
웹 배포 에이전트 서비스가 없는 경우 제어판 > 프로그램 > 프로그램 제거로 이동하여 Microsoft 웹 배포 <버전>을 찾습니다. 설치 변경을 선택하고 웹 배포 구성 요소에 대한 로컬 하드 드라이브에 설치됩니다를 선택해야 합니다. 설치 변경 단계를 완료합니다.
Windows Server의 IIS에서 게시 설정 파일 만들기
UI에서 업데이트된 구성 옵션을 표시하려면 IIS 관리 콘솔을 닫았다가 다시 엽니다.
IIS에서 기본 웹 사이트를 마우스 오른쪽 단추로 클릭하고 배포>웹 배포 게시 구성을 선택합니다.
배포 메뉴가 표시되지 않는 경우 이전 섹션을 참조하여 웹 배포가 실행 중인지 확인합니다.
웹 배포 게시 구성 대화 상자에서 설정을 검토합니다.
설정을 클릭합니다.
결과 패널에서 출력은 지정된 사용자에게 액세스 권한을 부여했으며, .publishsettings 파일 확장명을 가진 파일을 대화 상자에 표시된 위치에 생성했음을 보여줍니다.
<?xml version="1.0" encoding="utf-8"?> <publishData> <publishProfile publishUrl="https://myhostname:8172/msdeploy.axd" msdeploySite="Default Web Site" destinationAppUrl="http://myhostname:80/" profileName="Default Settings" publishMethod="MSDeploy" userName="myhostname\myusername" /> </publishData>
Windows Server 및 IIS 구성에 따라 XML 파일에 다른 값이 표시됩니다. 표시되는 값의 몇 가지 세부 정보는 다음과 같습니다.
publishUrl
특성에서 참조된 msdeploy.axd 파일은 웹 배포에 대해 동적으로 생성된 HTTP 처리기 파일입니다. (테스트 목적으로http://myhostname:8172
도 일반적으로 잘 작동합니다.)publishUrl
포트는 웹 배포에 대한 기본값인 포트 8172로 설정됩니다.destinationAppUrl
포트는 IIS에 대한 기본값인 포트 80으로 설정됩니다.이후 단계에서 호스트 이름을 사용하여 Visual Studio에서 원격 호스트에 연결할 수 없는 경우 호스트 이름 대신 서버의 IP 주소를 테스트합니다.
참고
Azure VM에서 실행되는 IIS에 게시하는 경우 네트워크 보안 그룹에서 웹 배포 및 IIS용 인바운드 포트를 열어야 합니다. 자세한 내용은 가상 머신에 대한 포트 열기를 참조하세요.
Visual Studio를 실행 중인 컴퓨터에 이 파일을 복사합니다.
Visual Studio에서 게시 설정 가져오기 및 배포
ASP.NET 프로젝트가 Visual Studio에서 열려 있는 컴퓨터에서 솔루션 탐색기의 프로젝트를 마우스 오른쪽 단추로 클릭하고, 게시를 선택합니다.
게시 프로필을 이전에 구성한 경우 게시 창이 나타납니다. 신규 또는 새 프로필 만들기를 클릭합니다.
프로필을 가져오는 옵션을 선택합니다.
게시 대화 상자에서 프로필 가져오기를 클릭합니다.
이전 섹션에서 만든 게시 설정 파일의 위치로 이동합니다.
게시 설정 파일 가져오기 대화 상자에서 이전 섹션에서 만든 프로필로 이동하고 선택한 다음, 열기를 클릭합니다.
마침을 클릭하여 게시 프로필을 저장하고, 게시를 클릭합니다.
Visual Studio에서 배포 프로세스를 시작하고, 출력 창에서 진행률 및 결과를 표시합니다.
배포 오류가 발생하는 경우 더 많은 작업>편집을 클릭하여 설정을 편집합니다. 설정을 수정하고 유효성 검사를 클릭하여 새 설정을 테스트합니다. 호스트 이름이 없으면 서버 및 대상 URL 필드 모두에 호스트 이름 대신 IP 주소를 시도합니다.
참고 항목
Azure VM을 다시 시작하면 IP 주소가 변경될 수 있습니다.
앱을 성공적으로 배포한 후 자동으로 시작해야 합니다.
- 배포 후, 앱이 시작되지 않는 경우 IIS에서 앱을 시작하여 올바로 실행되는지 확인합니다.
- ASP.NET Core의 경우 DefaultAppPool에 대한 애플리케이션 풀 필드가 관리 코드 없음으로 설정되었는지 확인합니다.
준비가 되면 디버그 구성으로 전환합니다.
Important
릴리스 구성을 디버그하도록 선택하는 경우 게시할 때 web.config 파일에서 디버깅을 사용하지 않도록 설정합니다.
- 추가 옵션> 및 편집을 선택하여 프로필을 편집한 다음 설정을 선택합니다.
- 저장을 선택한 다음 앱을 다시 게시합니다.
- 디버그 구성을 선택하고, 파일 게시 옵션에서 대상에서 추가 파일 제거를 선택합니다.
- 편집을 선택하여 프로필을 편집하고 설정을 선택합니다.
- 저장을 선택한 다음 앱을 다시 게시합니다.
- 디버그 구성을 선택하고, 파일 게시 옵션에서 대상에서 추가 파일 제거를 선택합니다.
(선택 사항) 로컬 폴더에 게시하여 배포
PowerShell, RoboCopy를 사용하여 앱을 IIS에 복사하거나 수동으로 파일을 복사하려는 경우 이 옵션을 사용하여 앱을 배포할 수 있습니다.
Windows Server 컴퓨터에서 ASP.NET Core 웹 사이트 구성
게시 설정을 가져오는 경우 이 섹션을 건너뛸 수 있습니다.
IIS(인터넷 정보 서비스) 관리자 를 열고 사이트로 이동합니다.
기본 웹 사이트 노드를 마우스 오른쪽 단추로 클릭하고 애플리케이션 추가를 선택합니다.
별칭 필드를 MyASPApp으로 설정하고 애플리케이션 풀 필드를 관리 코드 없음으로 설정합니다. 실제 경로를 C:\Publish로 설정합니다. 나중에 여기로 ASP.NET Core 프로젝트를 배포할 수 있습니다.
IIS 관리자에서 사이트를 선택하여 사용 권한 편집을 선택하고 IUSR, IIS_IUSRS 또는 애플리케이션 풀에 대해 구성된 사용자가 읽기 및 실행 권한을 가진 사용자인지 확인합니다.
액세스 권한이 있는 사용자 중 하나가 표시되지 않으면 읽기 및 실행 권한이 있는 사용자로 IUSR을 추가하는 단계를 진행합니다.
(선택 사항) Visual Studio에서 로컬 폴더에 게시하여 앱을 게시 및 배포
웹 배포를 사용하지 않는 경우 파일 시스템 또는 기타 도구를 사용하여 앱을 게시하고 배포해야 합니다. 먼저 파일 시스템을 사용하여 패키지를 만든 다음 수동으로 패키지를 배포하거나 PowerShell, Robocopy 또는 XCopy와 같은 다른 도구를 사용할 수 있습니다. 이 섹션에서는 웹 배포를 사용하지 않는 경우 패키지를 수동으로 복사한다고 가정합니다.
솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 게시(Web Forms의 경우 웹앱 게시)를 선택합니다.
게시 프로필을 이전에 구성한 경우 게시 창이 나타납니다. 새 프로필을 클릭합니다.
게시 대화 상자에서 폴더를 선택하고 찾아보기를 클릭하여 새 폴더 C:\Publish를 만듭니다.
마침을 클릭하여 게시 프로필을 저장합니다.
마침을 클릭하여 게시 프로필을 저장합니다.
디버그 구성으로 전환합니다.
편집을 선택하여 프로필을 편집하고 설정을 선택합니다. 디버그 구성을 선택하고, 파일 게시 옵션에서 대상에서 추가 파일 제거를 선택합니다.
참고
릴리스 빌드를 사용하는 경우 게시할 때 web.config 파일에서 디버깅을 사용하지 않도록 설정합니다.
게시를 클릭합니다.
애플리케이션은 프로젝트의 디버그 구성을 로컬 폴더에 게시합니다. 진행률이 출력 창에 표시됩니다.
Visual Studio 컴퓨터의 ASP.NET 프로젝트 디렉터리를 Windows Server 컴퓨터에서 ASP.NET에 대해 구성된 로컬 디렉터리(이 예에서는 C:\Publish)에 복사합니다. 이 자습서에서는 수동으로 복사하는 것을 가정하고 설명하지만 PowerShell, Xcopy 또는 Robocopy 같은 다른 도구를 사용할 수도 있습니다.
주의
코드를 변경하거나 다시 빌드해야 하는 경우 다시 게시하고 이 단계를 반복해야 합니다. 원격 컴퓨터에 복사한 실행 파일은 로컬 소스 및 기호와 정확히 일치해야 합니다. 이렇게 하지 않으면 프로세스를 디버그하려고 할 때 Visual Studio에서
cannot find or open the PDB file
경고가 표시됩니다.Windows Server에서 브라우저에서 앱을 열어 앱을 제대로 실행할 수 있는지 확인합니다.
앱이 제대로 실행되지 않는다면 서버에 설치된 ASP.NET 버전과 Visual Studio 머신의 버전이 일치하지 않을 수 있습니다. 또는 IIS 또는 웹 사이트 구성에 문제가 있을 수도 있습니다. 이전 단계를 다시 확인합니다.
Windows Server에서 원격 도구 다운로드 및 설치
Visual Studio 버전과 일치하는 원격 도구 버전을 다운로드합니다.
디버그하려는 원격 디바이스 또는 서버에서(Visual Studio 머신 아님) 다음 표에 나온 링크를 통해 올바른 버전의 원격 도구를 다운로드하여 설치하세요.
- 사용 중인 버전의 Visual Studio용 원격 도구의 최신 업데이트를 다운로드합니다. 이전 원격 도구 버전은 이후 Visual Studio 버전과 호환되지 않습니다. (예를 들어, Visual Studio 2019을 사용하는 경우 Visual Studio 2019용 원격 도구의 최신 업데이트를 다운로드합니다. 이 시나리오에서는 Visual Studio 2022용 원격 도구를 다운로드하지 마세요.)
- 설치할 머신과 동일한 아키텍처를 가진 원격 도구를 다운로드합니다. 예를 들어 x64 운영 체제를 실행하는 원격 컴퓨터에서 x86 애플리케이션을 디버깅하려면 x64 원격 도구를 설치합니다. ARM64 운영 체제에서 x86, ARM 또는 x64 애플리케이션을 디버그하려면 ARM64 원격 도구를 설치합니다.
버전 | 링크 | 참고 |
---|---|---|
Visual Studio 2022 | 원격 도구 | 모든 Visual Studio 2022 버전과 호환됩니다. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. 이전 버전의 Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2019 | 원격 도구 | Visual Studio 2019용 원격 도구는 My.VisualStudio.com에서 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인하세요. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. 이전 버전의 Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2017 | 원격 도구 | Visual Studio 2017용 원격 도구는 My.VisualStudio.com에서 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인하세요. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2015 | 원격 도구 | Visual Studio 2015용 원격 도구는 My.VisualStudio.com에서 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인하세요. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2013 | 원격 도구 | Visual Studio 2013 설명서의 다운로드 페이지 |
Visual Studio 2012 | 원격 도구 | Visual Studio 2012 설명서의 다운로드 페이지 |
버전 | 링크 | 참고 |
---|---|---|
Visual Studio 2019 | 원격 도구 | 모든 Visual Studio 2019 버전과 호환됩니다. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. 원격 도구 최신 버전의 경우 Visual Studio 2022 문서를 엽니다. |
Visual Studio 2017 | 원격 도구 | 모든 Visual Studio 2017 버전과 호환됩니다. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2015 | 원격 도구 | Visual Studio 2015용 원격 도구는 My.VisualStudio.com에서 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인하세요. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2013 | 원격 도구 | Visual Studio 2013 설명서의 다운로드 페이지 |
Visual Studio 2012 | 원격 도구 | Visual Studio 2012 설명서의 다운로드 페이지 |
원격 도구를 설치하는 대신 msvsmon.exe를 원격 컴퓨터에 복사하여 원격 디버거를 실행할 수 있습니다. 그러나 원격 디버거 구성 마법사(rdbgwiz.exe)는 원격 도구를 설치하는 경우에만 사용할 수 있습니다. 원격 디버거를 서비스로 실행하려면 구성을 위해 마법사를 사용해야 할 수도 있습니다. 자세한 내용은 (선택 사항) 원격 디버거를 서비스로 구성을 참조하세요.
참고
- ARM 디바이스에서 Windows 10 또는 이후 버전의 앱을 디버그하려면 최신 버전의 원격 도구에서 사용할 수 있는 ARM64를 사용합니다.
- Windows RT 디바이스에서 Windows 10 앱을 디버그하려면 Visual Studio 2015 원격 도구 다운로드에서만 사용할 수 있는 ARM을 사용합니다.
- ARM64 운영 체제에서 x64 앱을 디버그하려면 ARM64 원격 도구와 함께 설치된 x64 msvsmon.exe를 실행합니다.
Windows Server에서 원격 디버거 설정
원격 컴퓨터의 시작 메뉴에서 원격 디버거를 찾아 시작합니다.
원격 컴퓨터에 대한 관리 권한이 없는 경우 원격 디버거 앱을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택합니다. 이와 같은 권한이 있는 경우 정상적으로 시작합니다.
관리자 권한으로 실행 중인 프로세스에 연결하려는 경우 또는 IIS와 같은 다른 사용자 계정으로 실행 중인 경우에는 원격 디버거 앱을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택합니다. 자세한 내용은 Run the remote debugger as an administrator(관리자 권한으로 원격 디버거 실행)를 참조하세요.
처음으로(또는 구성하기 전에) 원격 디버거를 시작할 때는 원격 디버깅 구성 마법사가 나타납니다.
대부분의 시나리오에서 마법사의 Windows 방화벽 구성 페이지가 표시될 때까지 다음을 선택합니다.
Windows 웹 서비스 API가 설치되어 있지 않으면(Windows Server 2008 R2에만 해당) 설치 단추를 선택합니다.
원격 도구를 사용하려는 네트워크 유형을 하나 이상 선택하세요. 컴퓨터가 도메인을 통해 연결된 경우 첫 번째 항목을 선택해야 합니다. 컴퓨터가 작업 그룹 또는 홈 그룹을 통해 연결된 경우 두 번째 또는 세 번째 항목을 적절하게 선택합니다.
그런 다음 마침을 선택하여 원격 디버거를 시작합니다.
다음으로, 원격 디버깅 구성을 선택하여 원격 디버거를 시작합니다.
구성이 완료되면 원격 디버거 창이 나타납니다.
이제 원격 디버거가 연결을 기다리는 중입니다. 표시된 서버 이름과 포트 번호를 사용하여 Visual Studio에서 원격 연결 구성을 설정합니다.
원격 디버거를 중지하려면 파일>끝내기를 선택합니다. 시작 메뉴 또는 명령줄에서 다시 시작할 수 있습니다.
<Remote debugger installation directory>\msvsmon.exe
참고
추가 사용자를 위해 사용 권한을 추가하거나 원격 디버거의 인증 모드 또는 포트 번호를 변경해야 하는 경우 원격 디버거 구성을 참조하세요.
Visual Studio 컴퓨터에서 ASP.NET Core 애플리케이션에 연결
Visual Studio 2022 버전 17.10 프리뷰 2부터 프로세스에 연결 대화 상자가 변경되었습니다. 이전 대화 상자와 일치하는 지침이 필요한 경우 Visual Studio 2019 보기(문서의 왼쪽 위 버전 선택기)로 전환합니다.
Visual Studio 컴퓨터에서 디버그하려는 솔루션(이 문서의 모든 단계를 수행하는 경우 MyASPApp)을 엽니다.
Visual Studio에서 디버그 > 프로세스에 연결(Ctrl+Alt+P)을 선택합니다.
팁
Visual Studio 2017 및 이후 버전에서는 디버그 > 프로세스에 다시 연결...(Shift + Alt + P)을 사용하여 이전에 연결했던 것과 동일한 프로세스에 다시 연결할 수 있습니다.
연결 형식을 원격(Windows)으로 설정합니다.
연결 대상 옵션이 나타납니다.
연결 대상을 <원격 컴퓨터 이름>으로 설정하고 Enter 키를 누릅니다.
Visual Studio에서 <원격 컴퓨터 이름>:포트 형식으로 표시되는 컴퓨터 이름에 필요한 포트를 추가하는지 확인합니다.
Visual Studio 2022에서는 <원격 컴퓨터 이름>:4026이 표시됩니다.
이 포트는 필수입니다. 포트 번호가 표시되지 않으면 수동으로 추가하세요.
Visual Studio 컴퓨터에서 디버그하려는 솔루션(이 문서의 모든 단계를 수행하는 경우 MyASPApp)을 엽니다.
Visual Studio에서 디버그 > 프로세스에 연결(Ctrl+Alt+P)을 선택합니다.
팁
Visual Studio 2017 및 이후 버전에서는 디버그 > 프로세스에 다시 연결...(Shift + Alt + P)을 사용하여 이전에 연결했던 것과 동일한 프로세스에 다시 연결할 수 있습니다.
한정자 필드를 <원격 컴퓨터 이름>으로 설정하고 Enter 키를 누릅니다.
Visual Studio에서 <원격 컴퓨터 이름>:포트 형식으로 표시되는 컴퓨터 이름에 필요한 포트를 추가하는지 확인합니다.
Visual Studio 2019에서는 <원격 컴퓨터 이름>:4024가 표시됩니다.
이 포트는 필수입니다. 포트 번호가 표시되지 않으면 수동으로 추가하세요.
새로 고침을 선택합니다.
일부 프로세스가 사용 가능한 프로세스 창에 표시됩니다.
프로세스가 보이지 않으면 원격 컴퓨터 이름 대신 IP 주소를 사용해 보세요(포트가 필요함). 명령줄에서
ipconfig
를 사용하여 IPv4 주소를 가져올 수 있습니다.찾기 단추를 사용하려면 서버에서 아웃바운드 UDP 포트 3702를 열어야 합니다.
모든 사용자의 프로세스 표시를 선택합니다.
앱을 신속하게 찾으려면 프로세스 이름의 첫 글자를 입력합니다.
IIS에서 In-Process 호스팅 모델을 사용하는 경우 올바른 w3wp.exe 프로세스를 선택합니다. .NET Core 3부터는 이 프로세스가 기본값입니다.
그렇지 않으면 dotnet.exe 프로세스를 선택합니다. (이것은 Out-of-process 호스팅 모델입니다.)
w3wp.exe 또는 dotnet.exe가 표시되는 프로세스가 여러 개인 경우 사용자 이름 열을 확인합니다. 일부 시나리오에서는 사용자 이름 열에 IIS APPPOOL\DefaultAppPool과 같은 앱 풀 이름이 표시됩니다. 앱 풀이 보이지만 고유하지 않으면, 디버그할 앱 인스턴스에 대해 새로 명명된 앱 풀을 만듭니다. 그러면 사용자 이름 열에서 쉽게 찾을 수 있습니다.
첨부를 선택합니다.
원격 컴퓨터의 웹 사이트를 엽니다. 브라우저에서 http://<원격 컴퓨터 이름>으로 이동합니다.
ASP.NET 웹 페이지가 표시됩니다.
실행 중인 ASP.NET 애플리케이션에서 개인 정보 페이지 링크를 선택합니다.
Visual Studio에서 중단점이 적중됩니다.
중단점을 연결하거나 도달할 수 없는 경우 원격 디버깅 문제 해결을 참조하세요.
IIS 배포 문제 해결
- 호스트 이름을 사용하여 호스트에 연결할 수 없는 경우 대신 IP 주소를 사용해 보세요.
- 원격 서버에서 필요한 포트가 열려 있는지 확인합니다.
- ASP.NET Core의 경우 DefaultAppPool에 대한 애플리케이션 풀 필드가 관리 코드 없음으로 설정되었는지 확인해야 합니다.
- 앱에 사용되는 ASP.NET의 버전이 서버에 설치된 버전과 동일한지 확인합니다. 앱의 경우 속성 페이지에서 버전을 보고 설정할 수 있습니다. 앱을 다른 버전으로 설정하려면 해당 버전을 설치해야 합니다.
- 앱을 열려고 했지만 인증서 경고가 표시되면 사이트를 신뢰한다고 선택합니다. 경고를 이미 닫은 경우 프로젝트에서 게시 프로필(*.pubxml 파일)을 편집하고 다음 요소를 추가할 수 있습니다(테스트 전용).
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
- 배포된 후 IIS에서 앱을 시작하여 올바르게 배포되었는지 테스트합니다.
- Visual Studio의 출력 창에서 상태 정보를 확인하고 오류 메시지를 확인합니다.
Windows Server에서 필수 포트 열기
대부분의 설정에서는 ASP.NET 및 원격 디버거를 설치하여 필요한 포트를 엽니다. 그러나 배포 문제를 해결하는 중이고 앱이 방화벽 뒤에서 호스트되는 경우 올바른 포트가 열려 있는지 확인해야 할 수 있습니다.
Azure VM에서 다음을 통해 포트를 열어야 합니다.
필수 포트:
- 80 - IIS에 필요합니다.
- 4026 - Visual Studio 2022에서 원격 디버깅에 필요합니다(자세한 내용은 원격 디버거 포트 할당 참조).
- 4024 - Visual Studio 2019에서 원격 디버깅에 필요합니다(자세한 내용은 원격 디버거 포트 할당 참조).
- UDP 3702 - (선택 사항) 검색 포트를 열면 Visual Studio에서 원격 디버거에 연결할 때 찾기 버튼을 사용할 수 있습니다. 아웃바운드 포트(아웃바운드 규칙)여야 합니다.
이러한 포트는 ASP.NET Core 설치 중 이미 열려 있을 것입니다.
- 8172 - (선택 사항) Visual Studio에서 앱을 배포하기 위해 웹 배포에 필요합니다.