2010-11-06 26 views
5

He escrito un controlador simple:controlador de ASP.NET no se ejecuta en IIS7

public class ImageHandler : IHttpHandler, IRequiresSessionState 
{ 
    public bool IsReusable 
    { 
     get { return true; } 
    } 

    public void ProcessRequest(HttpContext context) 
    { 
     byte[] imgData = context.Session["Data"] as byte[]; 

     if (imgData != null) 
     { 
      context.Response.CacheControl = "no-cache"; 
      context.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
      context.Response.ContentType = "image/png"; 

      context.Response.BinaryWrite(imgData); 
      context.Response.Flush(); 
     } 
    } 
} 

y configurar el web.config:

<system.web> 
    <httpHandlers> 
     <add verb="GET" path="image.png" type="TestWeb.Handlers.ImageHandler, TestWeb" /> 
    </httpHandlers> 
    </system.web> 

    <system.webServer> 
    <handlers> 
     <add name="Image" verb="GET" path="image.png" type="TestWeb.Handlers.ImageHandler, TestWeb" /> 
    </handlers> 
    </system.webServer> 
  • Si funciono el código permitiendo VS iniciar una El nuevo servicio IIS y abre una nueva pestaña alcanza el punto de interrupción en el controlador.
  • Si configuro don't open a page. Wait for request from an external application, nunca llega al controlador.

No es solo el punto de interrupción, ningún código del controlador se ejecuta cuando ejecuto el sitio web configurado en IIS. Solo funciona si comienzo desde VS.

only from VS

Lo que no se me olvida la hora de configurar IIS7?

Respuesta

2

Tuve que cambiar el grupo de aplicaciones al modo Integrated, estaba usando el clásico.

Y tuve que eliminar la configuración del controlador de <system.web> porque me estaba dando error 500.23.

Error HTTP 500.23 - Error interno del servidor entorno Un ASP.NET ha sido detecta que no se aplica en integrados gestionados modo de canalización.

+3

Puede tener la configuración en ambos lugares si agrega en curtisk

0

tiene que adjuntar al proceso de trabajo asp.net. ve a tools/attach para procesar y elige el proceso de w3p.

+0

No es solo el punto de interrupción. No se ejecuta código del controlador. No creo que el problema esté en VS, supongo que es algo en IIS7. – BrunoLM

Cuestiones relacionadas