Ich habe das Problem mit wiederverwendbaren HTTPHandlers. Ich wollte überprüfen, wie funktioniert die IsReusable
Eigenschaft. Also habe ich zwei Handler erstellt:HTTPHandler und IsReusable mit WebHandler
wiederverwendbar:
public class ReusableHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
private int _counter;
public ReusableHandler()
{
_counter = 0;
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write("Reusable: " + _counter++);
}
}
Und nicht wiederverwendbar:
public class NonReusableHandler : IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
private int _counter;
public NonReusableHandler()
{
_counter = 0;
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write("NonReusable: " + _counter++);
}
}
Beide arbeiten wie erwartet: Wiederverwendbare jedes Mal zurückkehrt erhöhte Wert, während NonReusable 0 zurück, jeder Zeit. Aber wenn ich meine Handler als WebHandler (* .ashx) benutze, geben sie beide jedes Mal 0 zurück (Code genau gleich). Bedeutet es, dass die Eigenschaft IsReusable
ignoriert wird, wenn ich WebHandler verwende?