이 가이드에서는 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 서버에서 IIS의 기본 구성을 설정하고 Visual Studio에서 앱을 배포하는 단계가 포함되어 있습니다. 이러한 단계는 서버에 필요한 구성 요소가 설치되어 있는지, 앱이 올바르게 실행될 수 있는지, 원격 디버그할 준비가 되었는지 확인하기 위해 포함됩니다.
앱이 IIS에서 실행 중이고 원격 디버거를 다운로드하고 디버깅을 시작하려는 경우 Windows Server에서 원격 도구 다운로드 및 설치로 이동합니다.
디버그할 수 있도록 IIS에서 앱이 설정, 배포 및 올바르게 실행되도록 하려면 이 문서의 모든 단계를 수행합니다.
시작하기 전에 IIS 웹 서버를 설치하는 단계를 포함하는 Windows Virtual Machine 만들기에 설명된 모든 단계를 수행합니다.
Azure 네트워크 보안 그룹에서 포트 80을 열어야 합니다. 포트 80이 열려 있는지 확인하면 원격 디버거(4026, 4024 또는 4022)에 대한 올바른 포트 도 엽니다. 이렇게 하면 나중에 열 필요가 없습니다. 웹 배포를 사용하는 경우 포트 8172도 엽니다.
Visual Studio 컴퓨터에서 ASP.NET Core 애플리케이션 만들기
새 ASP.NET Core 웹 애플리케이션을 만듭니다.
Visual Studio에서 파일>시작 창을 선택하여 시작 창을 연 다음 새 프로젝트 만들기를 선택합니다. 검색 상자에 웹앱을 입력한 다음 C# 을 언어로 선택한 다음 ASP.NET Core 웹 애플리케이션(모델View-Controller)을 선택한 다음, 다음을 선택합니다. 다음 화면에서 프로젝트 이름을 MyASPApp으로 지정하고 다음을 선택합니다.
권장 대상 프레임워크 또는 .NET 8을 선택한 다음 만들기선택합니다. 버전은 서버에 설치된 버전과 일치해야 합니다.
Controllers 폴더에서 HomeController.cs 파일을 열고 메서드의
return View;
문에Privacy
중단점을 설정합니다.이전 템플릿에서 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 호스팅을 설치합니다.
비고
시스템에 인터넷 연결이 없는 경우 .NET Core Windows Server 호스팅 번들을 설치하기 전에 Microsoft Visual C++ 2015 재배포 가능 패키지 가져오기 및 설치
시스템을 다시 시작합니다(또는 net stop이 /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에 웹 배포 설치 및 구성
웹 배포는 UI에서 게시 설정 파일을 만들 수 있도록 하는 추가 구성 기능을 제공합니다.
비고
웹 플랫폼 설치 관리자는 7/1/22에 수명이 종료되었습니다. 자세한 내용은 웹 플랫폼 설치 관리자 - 제품/애플리케이션 피드지원 종료 및 종료를 참조하세요. 웹 배포 4.0을 직접 설치하여 게시 설정 파일을 만들 수 있습니다.
IIS 관리 스크립트 및 도구아직 설치하지 않은 경우 지금 설치합니다.
IIS(웹 서버) 관리 도구 서버 역할 선택으로 이동한 다음 IIS 관리 스크립트 및 도구 역할을 선택하고다음 클릭한 다음 역할을 설치합니다.IIS 관리 스크립트 및 도구 설치
게시 설정 파일을 생성하려면 스크립트와 도구가 필요합니다.
또한 관리 서비스 및 IIS 관리 콘솔 설치해야 합니다(이미 설치되었을 수 있음).
Windows Server에서 Web Deploy 4.0을 다운로드.
웹 배포 설치 프로그램을 실행하고, 일반적인 설치 대신 설치 완료를 선택해야 합니다.
전체 설치를 통해 게시 설정 파일을 생성하는 데 필요한 구성 요소를 가져옵니다. (사용자 지정 대신
선택하는 경우 다음 그림과 같이 구성 요소 목록을 볼 수 있습니다.) (선택 사항) 제어판 > 시스템 및 보안 > 관리 도구 > Services열어 웹 배포가 올바르게 실행되고 있는지 확인한 다음 다음을 확인합니다.
웹 배포 에이전트 서비스 실행 중입니다(서비스 이름은 이전 버전에서 다릅니다).
웹 관리 서비스 실행 중입니다.
에이전트 서비스 중 하나가 실행되고 있지 않으면 웹 배포 에이전트 서비스다시 시작합니다.
웹 배포 에이전트 서비스가 전혀 없는 경우
제어판 제거로 이동하여 Microsoft Web Deploy프로그램 프로그램 버전 찾습니다. 설치 변경 선택하고 웹 배포 구성 요소에 대한 로컬 하드 드라이브 설치할 선택합니다. 설치 변경 단계를 완료합니다.
Windows Server의 IIS에서 게시 설정 파일 만들기
IIS 관리 콘솔을 닫고 다시 열어 업데이트된 구성 옵션을 UI에 표시합니다.
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
파일은 웹 배포에 대해 동적으로 생성된 HTTP 처리기 파일입니다. (테스트를 위해http://myhostname:8172
일반적으로도 작동합니다.)publishUrl
포트는 웹 배포의 기본값인 포트 8172로 설정됩니다.destinationAppUrl
포트는 IIS의 기본값인 포트 80으로 설정됩니다.이후 단계에서 호스트 이름을 사용하여 Visual Studio에서 원격 호스트에 연결할 수 없는 경우 호스트 이름 대신 서버의 IP 주소를 테스트합니다.
비고
Azure VM에서 실행되는 IIS에 게시하는 경우 네트워크 보안 그룹에서 웹 배포 및 IIS에 대한 인바운드 포트를 열어야 합니다. 자세한 내용은 가상 머신포트 열기를 참조하세요.
Visual Studio를 실행하는 컴퓨터에 이 파일을 복사합니다.
Visual Studio에서 게시 설정 가져오기 및 배포
Visual Studio에서 ASP.NET 프로젝트가 열려 있는 컴퓨터에서 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시선택합니다.
이전에 게시 프로필을 구성한 경우 게시 창이 나타납니다. 새 클릭 또는 새 프로필만들기.
프로필을 가져오는 옵션을 선택합니다.
게시 대화 상자에서 프로필 가져오기 클릭합니다.
이전 섹션에서 만든 게시 설정 파일의 위치로 이동합니다.
게시 설정 파일 가져오기 대화 상자에서 이전 섹션에서 만든 프로필로 이동하여 선택하고 열기를 클릭합니다.
마침을 클릭하여 게시 프로필을 저장한 후, 게시를 클릭합니다.
Visual Studio에서 배포 프로세스를 시작하고 출력 창에 진행률 및 결과가 표시됩니다.
배포 오류가 발생하면 기타 작업> 편집을 클릭하여 설정을 편집합니다. 설정을 수정하고 유효성 검사를 클릭하여 새 설정을 테스트합니다. 호스트 이름을 찾을 수 없는 경우 Server 및 대상 URL 필드에서 호스트 이름 대신 IP 주소를 시도합니다.
비고
Azure VM을 다시 시작하면 IP 주소가 변경될 수 있습니다.
앱이 성공적으로 배포되면 자동으로 시작됩니다.
- 앱이 배포 후에 시작되지 않는 경우 IIS에서 앱을 시작하여 앱이 올바르게 실행되는지 확인합니다.
- ASP.NET Core의 경우 DefaultAppPool 의 애플리케이션 풀 필드가 관리 코드 없음으로 설정되어 있는지 확인합니다.
준비가 되면 디버그 구성으로 전환합니다.
중요합니다
릴리스 구성을 디버그하도록 선택한 경우 게시할 때 web.config 파일에서 디버깅을 사용하지 않도록 설정합니다.
- 다른 옵션>편집을 선택하여 프로필을 편집한 다음 설정을 선택합니다.
- 저장을 선택한 다음, 앱을 다시 게시합니다.
- 디버그 구성을 선택한 다음 파일 게시 옵션에서 대상에서 추가 파일 제거를 선택합니다.
- 편집을 선택하여 프로필을 편집한 다음 설정을 선택합니다.
- 저장을 선택한 다음, 앱을 다시 게시합니다.
- 디버그 구성을 선택한 다음 파일 게시 옵션에서 대상에서 추가 파일 제거를 선택합니다.
경고
사용자 이름 및 암호 자격 증명(기본 인증)을 사용하는 것은 가장 안전한 인증 방법이 아닙니다. 가능하면 대체 메서드를 사용합니다. 예를 들어 Visual Studio에서 패키지에 게시한 다음 명령줄의 WebDeploy.exe 사용하여 패키지를 배포하는 것이 좋습니다. 이 방법을 사용하면 IIS 관리자를 사용하여 웹 서버에 게시할 수 있는 권한 있는 Windows 사용자를 구성하고 해당 Windows 사용자 계정으로 WebDeploy.exe 실행할 수 있습니다. IIS 8.0 이상에서 웹 배포 설치 및 구성참조하세요. 암호 자격 증명을 사용하는 경우 강력한 암호를 사용하고 암호가 유출되거나 공유되지 않도록 보호해야 합니다.
(선택 사항) 로컬 폴더에 게시하여 배포
PowerShell, RoboCopy를 사용하여 IIS에 앱을 복사하거나 파일을 수동으로 복사하려는 경우 이 옵션을 사용하여 앱을 배포할 수 있습니다.
Windows Server 컴퓨터에서 ASP.NET Core 웹 사이트 구성
게시 설정을 가져오는 경우 이 섹션을 건너뛸 수 있습니다.
IIS(인터넷 정보 서비스) 관리자를 열고 사이트로 이동합니다.
기본 웹 사이트 노드를 마우스 오른쪽 단추로 클릭하고 애플리케이션 추가를 선택합니다.
별칭 필드를 MyASPApp으로 설정하고 애플리케이션 풀 필드를 관리 코드 없음으로 설정합니다. C:\Publish(나중에 ASP.NET Core 프로젝트를 배포하는 위치)로 물리적 경로를 설정합니다.
IIS 관리자에서 사이트를 선택한 상태에서 권한 편집을 선택하고 IUSR, IIS_IUSRS 또는 애플리케이션 풀에 대해 구성된 사용자가 읽기 및 실행 권한이 있는 권한이 있는 사용자인지 확인합니다.
액세스 권한이 있는 사용자 중 하나가 표시되지 않는 경우 읽기 및 실행 권한이 있는 사용자로 IUSR을 추가하는 단계를 수행합니다.
중요합니다
기본 제공 계정과 관련된 보안 정보는 IIS 7의 사용자 및 그룹 계정 Built-In 이해를 참조하세요.
(선택 사항) 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)에서 실행되는 프로세스에 연결하려는 경우 원격 디버거 앱을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행 선택합니다. 자세한 내용은 관리자 권한으로 원격 디버거를 실행참조하세요.
원격 디버거를 처음 시작할 때(또는 구성하기 전에) 원격 디버깅 구성 마법사가 나타납니다.
대부분의 시나리오에서는 마법사의 Windows 방화벽 구성 페이지로 이동될 때까지 다음 선택합니다.
원격 디버거 구성의 스크린샷 원격 디버거 구성Remote Debugger configuration
원격 디버거 구성의 스크린샷 원격 디버거 구성Remote Debugger configuration
Windows Server 2008 R2에서만 발생하는 Windows Web Services API가 설치되지 않은 경우 설치 단추를 선택합니다.
원격 도구를 사용하려는 네트워크 유형을 하나 이상 선택합니다. 컴퓨터가 도메인을 통해 연결된 경우 첫 번째 항목을 선택해야 합니다. 컴퓨터가 작업 그룹 또는 홈 그룹을 통해 연결된 경우 두 번째 또는 세 번째 항목을 적절하게 선택합니다.
그런 다음 마침 선택하여 원격 디버거를 시작합니다.
다음으로, 원격 디버깅 구성을 선택하여 원격 디버거를 시작합니다.
구성이 완료되면 원격 디버거 창이 나타납니다.
스크린샷
스크린샷
이제 원격 디버거가 연결을 기다리고 있습니다. 표시된 서버 이름 및 포트 번호를 사용하여 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가 컴퓨터 이름에 필요한 포트를 추가하는지 확인합니다. 이 포트는 원격 컴퓨터 이름<:p ort 형식>으로 표시됩니다.
Visual Studio 2022에서 원격 컴퓨터 이름<:4026이 표시>되어야 합니다.
포트가 필요합니다. 포트 번호가 표시되지 않으면 수동으로 추가합니다.
Visual Studio 컴퓨터에서 디버그하려는 솔루션을 엽니다(이 문서의 모든 단계를 수행하는 경우 MyASPApp ).
Visual Studio에서 프로세스에 대한 디버그 > 연결을 선택합니다(Ctrl + Alt + P).
팁 (조언)
Visual Studio 2017 이상 버전에서는 디버그 > 다시 연결 ...(Shift + Alt + P)을 사용하여 이전에 연결한 프로세스와 동일한 프로세스에 다시 연결할 수 있습니다.
한정자 필드를 <원격 컴퓨터 이름으로> 설정하고 Enter 키를 누릅니 다.
Visual Studio가 컴퓨터 이름에 필요한 포트를 추가하는지 확인합니다. 이 포트는 원격 컴퓨터 이름<:p ort 형식>으로 표시됩니다.
Visual Studio 2019에서 원격 컴퓨터 이름<:4024가 표시됩니다>.
포트가 필요합니다. 포트 번호가 표시되지 않으면 수동으로 추가합니다.
새로 고침을 선택합니다.
사용 가능한 프로세스 창에 일부 프로세스가 표시됩니다.
프로세스가 표시되지 않으면 원격 컴퓨터 이름 대신 IP 주소를 사용해 보세요(포트가 필요함). 명령줄에서 IPv4
ipconfig
주소를 가져올 수 있습니다.찾기 단추를 사용하려면 서버에서 아웃바운드 UDP 포트 3702를 열어야 할 수 있습니다.
모든 사용자의 프로세스 표시를 확인합니다.
프로세스 이름의 첫 글자를 입력하여 앱을 빠르게 찾습니다.
IIS 에서 in-process 호스팅 모델을 사용하는 경우 올바른 w3wp.exe 프로세스를 선택합니다. .NET Core 3부터 이 프로세스가 기본값입니다.
그렇지 않으면 dotnet.exe 프로세스를 선택합니다. (Out-of-process 호스팅 모델입니다.)
w3wp.exe 또는 dotnet.exe표시하는 프로세스가 여러 개 있는 경우 사용자 이름 열을 확인합니다. 일부 시나리오에서는 사용자 이름 열에 IIS APPPOOL\DefaultAppPool과 같은 앱 풀 이름이 표시됩니다. 앱 풀이 표시되지만 고유하지 않은 경우 디버그하려는 앱 인스턴스에 대한 새 App Pool을 만든 다음 사용자 이름 열에서 쉽게 찾을 수 있습니다.
첨부를 선택합니다.
원격 컴퓨터의 웹 사이트를 엽니다. 브라우저에서 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에서 앱을 배포하려면 웹 배포에 필요