Recentemente, preciso fazer uma interface que responda a solicitações específicas. Ela é processada apenas internamente e não há UI. Nesse caso, é claro, o IHttpHandler é usado para implementar o IHttpHandler, o que pode reduzir o tempo de carregamento dos controles HTML. Originalmente pensei assim. Em relação aos dois métodos definidos em IHttpHandler, ProcessRequest(HttpContext ctx) e IsRunable(), vi que existe um parâmetro de entrada de HttpContext em ProcessRequest(HttpContext ctx). objetos de servidor, mas requer uma referência a HttpContext na frente. Mas surge um problema. A sessão precisa ser escrita neste cabeçalho de processamento de resposta HTTP personalizado. Outras solicitações e respostas podem ser referenciadas usando HttpContext, mas a sessão simplesmente não funciona. realmente cem É intrigante. O HTTPCONTEXT lista os objetos do servidor que podem ser usados, mas SESSION não pode ser usado! É muito difícil, então tenho que colocar o conteúdo do HTTPHANDLER customizado no WEBFORM comum. Logo após terminar, descobri acidentalmente o método de usar SESSION no HTTPHANDLER customizado!
1. Primeiro faça referência ao namespace System.Web.SessionState.
2. Se quiser ler o conteúdo de Session em HttpHandler, você também deve implementar a interface IReadOnlySessionState na classe que implementa IHttpHandler.
3. Se você deseja ler e escrever o conteúdo de Session em HttpHandler, você também deve implementar IRequiresSessionState na classe que implementa IHttpHandler,
para que Session possa ser usada normalmente no HttpHandler customizado.