programing

ASP.NET Development Server 대신 IIS에 디버거를 연결하려면 어떻게 해야 합니까?

starjava 2023. 7. 16. 12:27
반응형

ASP.NET Development Server 대신 IIS에 디버거를 연결하려면 어떻게 해야 합니까?

ASP.NET 웹 사이트가 있는데 F5를 누르면 ASP.NET Development Server에 자동으로 연결되는데, F5를 누르면 IIS worker process에 어떻게 연결합니까?

디버그->프로세스에 연결...

목록에서 aspnet_wp.exe 프로세스를 선택합니다.

IIS > 버전 5를 실행 중인 경우 프로세스는 w3wp.exe가 되며 모든 앱 풀에 대해 하나씩 있을 것입니다(따라서 어떤 앱 풀을 치고 있는지 모른다면 모든 앱 풀에 연결해야 합니다).

프로젝트 속성을 열고 웹 탭으로 이동하여 IIS에 대한 옵션을 선택합니다.

그러면 실제로 IIS에서 앱의 인스턴스가 시작되고 디버거가 연결됩니다.기존 IIS 인스턴스에만 연결하려면 디버그 메뉴에서 프로세스에 연결을 선택합니다.

VS 메뉴에서 Debug -> Attach to Process.

연결할 w3wp.exe 프로세스를 알려면 2008 서버에서 다음 명령을 사용할 수 있습니다.

c:\%systemroot%\system32\inetsrv\appcmd list wp

Windows 2003에서는

c:\%systemroot%\system32\cscript iisapp.vbs

자세한 내용은 IIS 응용 프로그램 풀 PID를 참조하십시오.

그러나 태스크 관리자(taskmgr.exe)에 액세스할 수 있는 경우 프로세스 ID와 함께 프로세스의 이름을 직접 볼 수 있으며, 대부분의 경우 프로세스의 "사용자 이름" 열이 응용 프로그램 풀 이름과 동일합니다(물론 정보를 보려면 이러한 열이 태스크 관리자에 표시되도록 설정해야 함).

그러나 모든 메소드에는 현재 실행 중인 프로세스만 표시되므로 유휴 시간으로 인해 특정 프로세스가 종료된 경우 프로세스를 목록에 표시하려면 먼저 사이트를 사용해야 합니다.

또한 응용 프로그램이 "Web Garden"(w3wp.exe가 두 개 이상 있음)인 경우에는 올바른 프로세스에 연결된 후에도 사이트에 대한 트래픽이 다른 프로세스로 전달될 수 있으므로 중단점이 발생한다는 보장이 없습니다.

또한 릴리스 모드에서 실행되는 응용 프로그램에 연결하면 디버그 모드에서 대신 실행됩니다. 예를 들어 시간 제한이 없습니다(시간 제한 오류를 실제로 해결하려는 경우 약간 문제가 될 수 있음).


원격 프로세스에 연결하는 것이 가장 좋은 방법입니다.

  1. 관련 포트를 열거나 완전히 비활성화하여 방화벽이 차단되지 않는지 확인합니다(완료되면 다시 켜야 함).
  2. 원격 시스템에 대한 관리 권한이 있는 윈도우즈 도메인 계정이 있거나 VS를 실행하는 로컬 시스템과 동일한 사용자 이름 및 암호를 가진 계정이 원격 시스템에 있어야 합니다.
  3. VS가 설치된 시스템에서 (Visual Studio 설치 경로)로 이동합니다.\Microsoft Visual Studio(마이크로소프트 비주얼 스튜디오)\common7\IDE\Remote Debugger(리모트 디버거)입니다. 이 폴더를 복사하여 원격 컴퓨터에 붙여넣거나 원격 컴퓨터에서 액세스할 수 있도록 이 폴더를 공유합니다.
  4. 원격 시스템에서 로컬 시스템과 동일한 사용자로 로그인한 다음(2단계 참조) 3단계의 복사되거나 공유된 폴더로 이동하고 "msvsmon.exe"를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 "관리자로 실행"을 선택합니다.
  5. Remote Monitor가 시작되고 일반적으로 (user)@(원격 시스템) 또는 다른 이름으로 서버를 시작했다고 주장해야 합니다.
  6. VS 메뉴에서 Debug -> Attach To Process(디버깅 -> 프로세스에 연결)를 선택한 후 전송을 "Default(기본값)"로 유지하고 "Qualifier Name(정격자 이름)"에 5단계의 이름을 입력합니다.
    모든 것이 올바르게 진행되면 원격 컴퓨터의 프로세스 목록이 표시됩니다.

물론 이 주제에는 훨씬 더 많은 것이 있으며 네이티브 코드를 디버깅하기 위해서는 프로세스가 훨씬 더 간단할 수도 있지만 여기에 나열한 단계는 모든 경우에 적용됩니다.

자세한 내용은 http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx 또는 MSDN과 이 사이트의 많은 게시물을 확인할 수 있습니다.

이것이 도움이 되기를 바랍니다.

또는 Visual Studio에 IIS 연결 플러그인 중 하나를 사용할 수 있습니다.

선호하는 확장 기능은 VS 명령(VS 2010 - 2012 또는 2013용) 또는 ReAttach(2017년 작동)입니다.

웹 응용 프로그램의 속성으로 이동합니다.시작 선택사항 섹션을 선택한 후 "기본 웹 서버 사용"에서 "사용자 정의 서버 사용"으로 변경합니다.기본 URL에 "http://localhost"를 입력합니다.

(2008년 VS 추정)

언급URL : https://stackoverflow.com/questions/210250/how-do-i-attach-the-debugger-to-iis-instead-of-asp-net-development-server

반응형