Recientemente, necesito crear una interfaz que responda a solicitudes específicas. Solo se procesa internamente y no hay interfaz de usuario. En este caso, por supuesto, se usa IHttpHandler para implementar IHttpHandler, lo que puede reducir el tiempo de carga de los controles HTML. Originalmente pensé que sí. Con respecto a los dos métodos definidos en IHttpHandler, ProcessRequest (HttpContext ctx) e IsRunable (), vi que hay un parámetro de entrada de HttpContext en ProcessRequest (HttpContext ctx). objetos del servidor, pero requiere una referencia a HttpContext al frente. Pero surge un problema. La sesión debe escribirse en este encabezado de procesamiento de respuesta HTTP personalizado. Se puede hacer referencia a otras solicitudes y respuestas utilizando HttpContext, pero la sesión simplemente no funciona. Siempre hay un error de que no se hace referencia. Realmente cien. Es desconcertante. HTTPCONTEXT enumera los objetos del servidor que se pueden usar, ¡pero SESSION no se puede usar! Es realmente difícil, así que tengo que poner el contenido del HTTPHANDLER personalizado en el WEBFORM normal. ¡Justo después de terminarlo, descubrí accidentalmente el método de usar SESSION en el HTTPHANDLER personalizado!
1. Primero haga referencia al espacio de nombres System.Web.SessionState.
2. Si desea leer el contenido de Session en HttpHandler, también debe implementar la interfaz IReadOnlySessionState en la clase que implementa IHttpHandler.
3. Si desea leer y escribir el contenido de Session en HttpHandler, también debe implementar IRequiresSessionState en la clase que implementa IHttpHandler,
para que Session se pueda usar normalmente en el HttpHandler personalizado.