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 application
n'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.
Qu'est-ce que je manque lors de la configuration IIS7?
Vous pouvez avoir la configuration aux deux endroits si vous ajoutez sous –
curtisk