2010-11-06 11 views
5

Ho scritto un semplice gestore:ASP.NET gestore non in esecuzione su 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(); 
     } 
    } 
} 

E impostare il 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> 
  • Se eseguo il codice permettendo VS avviare una nuovo servizio IIS e aprire una nuova scheda raggiunge il punto di interruzione sul gestore.
  • Se si imposta don't open a page. Wait for request from an external application, lo non raggiunge mai l'handler.

Non è solo il punto di interruzione, nessun codice del gestore viene eseguito quando eseguo il sito Web configurato su IIS. Funziona solo se parto da VS.

only from VS

Cosa mi sono perso durante la configurazione di IIS7?

risposta

2

Ho dovuto passare il Pool di applicazioni alla modalità Integrated, si stava utilizzando il classico.

E ho dovuto rimuovere la configurazione del gestore da <system.web> perché mi dava error 500.23.

Errore HTTP 500,23 - Internal Server Error impostazione Un ASP.NET è stato rilevato che non si applica in integrato gestito modalità pipeline.

+3

È possibile avere la configurazione in entrambe le posizioni se si aggiunge in curtisk

0

è necessario allegare al processo di lavoro asp.net. vai a strumenti/attach per elaborare e scegliere il processo w3p.

+0

Non è solo il punto di interruzione. Nessun codice dal gestore viene eseguito. Non penso che il problema sia su VS, immagino che sia qualcosa su IIS7. – BrunoLM

Problemi correlati