Обработчик ASP.NET не работает на IIS7 - PullRequest
5 голосов
/ 07 ноября 2010

Я написал простой обработчик:

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();
        }
    }
}

И настройте 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>
  • Если я запускаю код , позволяющий VS запустить новую службу IIS и открыть новую вкладку , она достигает точки останова в обработчике.
  • Если я установлю don't open a page. Wait for request from an external application, то никогда не достигнет обработчика .

Это не просто точка останова, никакой код из обработчика не выполняется, когда я запускаю веб-сайт, настроенный на IIS. Работает только если я начинаю с VS.

only from VS

Что я упустил при настройке IIS7?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2010

Мне пришлось переключить пул приложений в режим Integrated, он использовал классический.

И мне пришлось удалить конфигурацию обработчика из <system.web>, потому что он давал мне error 500.23.

Ошибка HTTP 500.23 - Внутренняя ошибка сервера Обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера.

0 голосов
/ 07 ноября 2010

необходимо подключить к рабочему процессу asp.net. зайдите в tools / attach to process и выберите процесс w3p.

...