Tengo un IHttpHandler que creo que se puede beneficiar de la reutilización, porque es costoso de configurar y es seguro para la ejecución de subprocesos. Pero se está creando un nuevo controlador para cada solicitud. Mi controlador no se está reutilizando.IHttpHandler IsReusable, pero no se vuelve a utilizar
El siguiente es mi caso de prueba simple, sin la configuración costosa. Este caso simple demuestra mi problema:
public class MyRequestHandler : IHttpHandler
{
int nRequestsProcessed = 0;
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
nRequestsProcessed += 1;
Debug.WriteLine("Requests processed by this handler: " + nRequestsProcessed);
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
}
Requests processed by this handler: 1
Requests processed by this handler: 1
Requests processed by this handler: 1
Requests processed by this handler: 1... at least 100 times. I never see > 1.
¿Entiendo mal cómo funciona IsReusable? ¿Hay algo más que pueda vencer la reutilización? Mi controlador está siendo llamado desde una aplicación de Silverlight si eso hace alguna diferencia.
¿Cómo estás? Conexión del controlador a su aplicación? A través de web.config o programáticamente? – Jacob
Esta es mi primera aplicación de este tipo. Creé un nuevo proyecto de sitio web ASP.NET en Visual Studio. Para ejecutar el servidor, estoy ejecutando Debug desde Visual Studio. –
Pregunto cómo ha configurado 'MyRequestHandler' para ejecutar. Por ejemplo, ¿está configurado en su web.config, o tiene un código en 'Global.asax' que lo registra? – Jacob