Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

임태현, IIS with ASP.NET

322 vues

Publié le

explain iis process from request to asp.net handler

Publié dans : Ingénierie
  • Login to see the comments

  • Soyez le premier à aimer ceci

임태현, IIS with ASP.NET

  1. 1. IIS with ASP.NET IO Studio 기술세미나
  2. 2. 시작하기 앞서 … Beginner’s Guide: How IIS Process ASP.NET Reques 위의 포스트를 필요에 맞게 재구성
  3. 3. 발표자 임태현 마비노기를 비롯한 여러 프로젝트에서 서버 개발자로 참여 현재 머신러닝 및 데이터 분석 관련 작업 중
  4. 4. ASP.NET 과 웹서버 ASP.NET은 호스팅 할 수 있는 웹서버가 필요 WebDev.WebServer.exe – VisualStudio 에서 ASP.NET 어플리케이션을 호스팅
  5. 5. 웹서버의 기본 형태 클라이언트가 정보 요청 서버가 요청을 받음 처리결과를 클라이언트로 전달
  6. 6. IIS Internet Information Server ASP.NET 을 호스트 할 수 있는 웹 서버중 하나 자체적으로 ASP.NET 을 처리할 수 있는 모듈 탑재
  7. 7. IIS 핵심 모듈 • Worker Process • Application Pool
  8. 8. Worker Process • W3WP.EXE • ASP.NET 응용프로그램을 실행 – 모든 ASP.NET 함수는 Work Process 안에서 실행 • 클라이언트에 응답을 작성
  9. 9. Application Pool • 워커프로세스를 환경을 공유하는 단위로 나누어서 관리 • 보안과 확장성을 위한 구조 – 프로세스간 격리
  10. 10. IIS 계층 구성 • Kernel Mode • User Mode
  11. 11. Kernel mode 클라이언트로부터의 리퀘스트를 수신 해당 클라이언트에게 응답을 반환 네트워크와 프로토콜 관련 작업 처리
  12. 12. HTTP.SYS • 유저 리퀘스트가 오면 제일 먼저 HTTP.SYS 에 도착 • 어느 어플리케이션 풀로 전달하지는 HTTP.SYS 가 결정
  13. 13. HTTP.SYS  어플리케이션 풀 • HTTP.SYS 는 워커프로세스에 대한 리퀘스트를 관리 • 어플리케이션풀 하나당 하나의 리퀘스트 큐 • HTTP.SYS 는 URI 기준으로 라우팅 테이블 작성 • 라우팅 테이블을 기준으로 어플리케이션 풀을 결정
  14. 14. User Mode 어플리케이션 프로세스를 실행 ASP.NET 관련 라이브러리 실행 사용자 코드 관련 작업 처리는 여기에서!
  15. 15. WAS • Web Administration Service • 리퀘스트를 어플리케이션 풀에 전달 • 어플리케이션 풀을 관리 • 웹 환경 설정을 관리
  16. 16. W3WP.EXE 워커프로세스를 관리 – 워커 프로세스 실행 – 리퀘스트 전달
  17. 17. ISAPI • Internet Server Application Program Interface • CGI의 단점을 개선하고 성능 개선을 위해 제안 – CGI : 어플리케이션 풀마다 별도로 모듈을 적재 – ISAPI : 공용 모듈이 별도의 메모리공간에 적재
  18. 18. ASPNET_ISAPI.DLL • W3WP.EXE 가 ASP.NET 환경을 사용하기 위해서 ASPNET_ISAPI.DLL 라는 ISAPI 모듈을 등록 • Aspnet_regiis.exe 로 수동등록 가능
  19. 19. HTTPRuntime 워커 프로세스가 aspnet_isapi.dll 로드 후 시작 ProcessRequest 함수가 엔트리포인트
  20. 20. HttpContext • ProcessRequest 함수 호출시 생성 • 리퀘스트 처리 동안 계속 유지 • Session 과 같은 객체의 접근 통로
  21. 21. HttpPipeline 모든 리퀘스트는 지정된 모듈들을 통과하여야 한다 모듈의 목록과 순서는 어플리케이션에서 정의
  22. 22. HttpHandler • 파이프라인의 엔드포인트 • 리퀘스트가 HttpHandler 에 이르르면 응답을 반환 – Ex) 웹페이지에 대한 요청이 왔다면 핸들러는 html 을 반환
  23. 23. 정리 리퀘스트를 HTTP.SYS 가 받음 WAS 에 전달하여 어플리케이션 풀 할당 워커 프로세스에 전달 ISAPI 로드후 HTTPRuntime 실행 파이프라인을 통과하면서 모듈들 처리 ASP.NET 웹 페이지 호출
  24. 24. Q & A 감사합니다

×