Mam problem z wielokrotnego użytku HTTPHandlers. Chciałem sprawdzić, jak działa własność IsReusable
. Więc stworzyliśmy dwie ładowarki:HTTPHandler i IsReusable with WebHandler
wielokrotnego użytku:
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++);
}
}
I nie wielokrotnego użytku:
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++);
}
}
Oboje pracy zgodnie z oczekiwaniami: wielokrotnego użytku każdy powróci czas zwiększana wartość, podczas gdy każdy NonReusable zwraca 0 czas. Ale kiedy używam moich programów obsługi jako WebHandlers (* .ashx), oba zwracają 0 za każdym razem (kod dokładnie taki sam). Czy to oznacza, że kiedy używam WebHandlers, właściwość IsReusable
jest ignorowana?