2010-11-06 31 views
5

J'ai écrit un gestionnaire simple:gestionnaire ASP.NET ne fonctionne pas sur 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(); 
     } 
    } 
} 

Et la configuration 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 je lance le code permettant VS démarrer une nouveau service IIS et ouvrez un nouvel onglet il atteint le point d'arrêt sur le gestionnaire.
  • Si je définis don't open a page. Wait for request from an external applicationn'atteint jamais le gestionnaire.

Ce n'est pas seulement le point d'arrêt, aucun code du gestionnaire ne s'exécute lorsque j'exécute le site Web configuré sur IIS. Cela ne fonctionne que si je pars de VS.

only from VS

Qu'est-ce que je manque lors de la configuration IIS7?

Répondre

2

J'ai dû basculer le pool d'applications au mode Integrated, il utilisait classique.

Et j'ai dû supprimer la configuration de gestionnaire de <system.web> parce qu'il me donnait error 500.23.

Erreur HTTP 500,23 - Internal Server Error Un paramètre ASP.NET a été détecté qui ne s'applique pas dans intégré mode pipeline managées.

+3

Vous pouvez avoir la configuration aux deux endroits si vous ajoutez sous curtisk

0

Vous devez vous connecter au processus de travail asp.net. allez dans tools/attach pour traiter et choisissez le processus w3p.

+0

Ce n'est pas seulement le point d'arrêt. Aucun code du gestionnaire ne s'exécute. Je ne pense pas que le problème soit sur VS, je suppose que c'est quelque chose sur IIS7. – BrunoLM