Недавно мне нужно было сделать интерфейс, который отвечает на конкретные запросы. Он обрабатывается только внутри и нет пользовательского интерфейса. В этом случае, конечно, IHttpHandler используется для реализации IHttpHandler, что позволяет сократить время загрузки HTML-элементов. Изначально я так и думал. Что касается двух методов, определенных в IHttpHandler, ProcessRequest(HttpContext ctx) и IsRunable(), я увидел, что в ProcessRequest(HttpContext ctx) есть входной параметр HttpContext. Я подумал, что через него можно использовать все. серверные объекты, но требует ссылку на HttpContext впереди. Но возникает проблема: в этом пользовательском заголовке обработки ответа HTTP необходимо записать сеанс. На другие запросы и ответы можно ссылаться с помощью HttpContext, но сеанс просто не работает. Всегда возникает ошибка, связанная с тем, что объект не указан. действительно сотня. Это озадачивает. В HTTPCONTEXT перечислены объекты сервера, которые можно использовать, но SESSION использовать нельзя! Это действительно сложно, поэтому мне приходится помещать содержимое настроенного HTTPHANDLER в обычную WEBFORM. Сразу после его завершения я случайно обнаружил метод использования SESSION в пользовательском HTTPHANDLER!
1. Сначала обратитесь к пространству имен System.Web.SessionState.
2. Если вы хотите прочитать содержимое Session в HttpHandler, вам также необходимо реализовать интерфейс IReadOnlySessionState в классе, который реализует IHttpHandler.
3. Если вы хотите читать и записывать содержимое сеанса в HttpHandler, вам также необходимо реализовать IRequiresSessionState в классе, который реализует IHttpHandler,
чтобы сеанс можно было нормально использовать в пользовательском HttpHandler.