최근에는 특정 요청에 응답하는 인터페이스를 만들어야 하는데 내부적으로만 처리되고 UI는 없습니다. 물론 이 경우에는 IHttpHandler를 사용하여 HTML 컨트롤을 로드하는 시간을 줄일 수 있습니다. 원래는 그렇게 생각했는데, IHttpHandler에 정의된 두 가지 메소드인 ProcessRequest(HttpContext ctx)와 IsRunable()에 대해 ProcessRequest(HttpContext ctx)에 HttpContext의 입력 매개변수가 있는 것을 보고 이를 통해 모두 사용할 수 있다고 생각했습니다. 서버 개체이지만 앞에 HttpContext에 대한 참조가 필요합니다. 그런데 문제가 발생합니다. 이 Custom HTTP 응답 처리 헤더에 Session을 작성해야 하는데, HttpContext를 사용하여 다른 Request 및 Response를 참조할 수 있지만 Session이 항상 참조되지 않는다는 오류가 발생합니다. 정말 100개입니다. HTTPCONTEXT에는 사용할 수 있는 서버 개체가 나열되어 있지만 SESSION은 사용할 수 없습니다. 정말 어렵기 때문에 맞춤화된 HTTPHANDLER의 내용을 일반 WEBFORM에 넣어야 합니다. 이 작업을 마친 직후에 우연히 사용자 정의 HTTPHANDLER에서 SESSION을 사용하는 방법을 발견했습니다!
1. 먼저 System.Web.SessionState 네임스페이스를 참조합니다.
2. HttpHandler에서 Session의 내용을 읽으려면 IHttpHandler를 구현하는 클래스에 IReadOnlySessionState 인터페이스도 구현해야 합니다.
3. HttpHandler에서 Session의 내용을 읽고 쓰려면 IHttpHandler를 구현하는 클래스에 IRequiresSessionState도 구현해야 사용자
정의 HttpHandler에서 Session을 정상적으로 사용할 수 있습니다.