Kürzlich muss ich eine Schnittstelle erstellen, die nur intern verarbeitet wird und keine Benutzeroberfläche enthält. In diesem Fall wird natürlich IHttpHandler verwendet, was die Zeit zum Laden von HTML-Steuerelementen verkürzen kann. Ich dachte ursprünglich, dass es in Bezug auf die beiden in IHttpHandler definierten Methoden ProcessRequest(HttpContext ctx) und IsRunable() einen Eingabeparameter von HttpContext in ProcessRequest(HttpContext ctx) gibt Kann mit allen verwendet werden Serverobjekte, erfordert jedoch einen Verweis auf HttpContext davor. Es tritt jedoch ein Problem auf. In diesem benutzerdefinierten HTTP-Antwortverarbeitungsheader kann auf andere Anfragen und Antworten verwiesen werden, aber auf die Sitzung wird immer ein Fehler angezeigt wirklich hundert Es ist rätselhaft. Der HTTPCONTEXT listet die Serverobjekte auf, die verwendet werden können, aber SESSION kann nicht verwendet werden! Es ist wirklich schwierig, deshalb muss ich den Inhalt des angepassten HTTPHANDLER in das normale WEBFORM einfügen. Kurz nachdem ich es beendet hatte, entdeckte ich versehentlich die Methode zur Verwendung von SESSION im benutzerdefinierten HTTPHANDLER!
1. Referenzieren Sie zunächst den System.Web.SessionState-Namespace.
2. Wenn Sie den Inhalt der Sitzung in HttpHandler lesen möchten, müssen Sie auch die IReadOnlySessionState-Schnittstelle in der Klasse implementieren, die IHttpHandler implementiert.
3. Wenn Sie den Inhalt von Session in HttpHandler lesen und schreiben möchten, müssen Sie auch IRequiresSessionState in der Klasse implementieren, die IHttpHandler implementiert,
damit Session im benutzerdefinierten HttpHandler normal verwendet werden kann.