2013-08-23 2 views
0

Я хочу запустить httphandler, когда некоторый пользователь получает доступ к файлу изображения с расширениями, такими как png, jpeg, gif и другие. Но я получаю eror 404, когда пытаюсь пройти. Я думаю, что сервер пытается найти файл на диске, но я хочу использовать псевдоним для доступа к файлу в моем обработчике и более новый доступ для реального фиктивного пути к файлу.
Пример файла конфигурации:Не запускать обработчик http в приложении asp.net

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <httpHandlers> 
     <add verb="GET,HEAD" path="*.jpg" type="Startup.Shop.ImageHandler, Startup.Shop" validate="false"/> 
    </httpHandlers> 
    <authorization> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 
    <system.webServer> 
    <handlers> 
     <add name="ImageHandlerfor JPG" path="*.jpg" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" /> 
     <add name="ImageHandler for GIF" path="*.gif" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" /> 
     <add name="ImageHandler for BMP" path="*.bmp" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" /> 
     <add name="ImageHandler for PNG" path="*.png" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" /> 
    </handlers> 
    </system.webServer> 
/configuration> 

Пример класса обработчика:

public class ImageHandler : IHttpHandler, IRouteHandler 
    { 

     public void ProcessRequest(HttpContext context) 
     { 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("Hello World"); 
     } 

     public bool IsReusable 
     { 
      get 
      { 
       return false; 
      } 
     } 

     public IHttpHandler GetHttpHandler(RequestContext requestContext) 
     { 
      return this; 
     } 
    } 

И еще - сервер IIS сконфигурировано в классическом режиме

ответ

0

Если вы в классическом режиме, то asp.net выиграл 't вызывается IIS, если IIS не знает тип файла, который должен отображаться. На панели управления IIS вы можете настроить типы файлов, обрабатываемые ASP.NET. В противном случае предполагается, что тип файла для физического файла, который он не может найти в файловой системе.

+0

Да, я забыл добавить о настройке сервера. В сопоставлениях Обработчиков есть следующий обработчик с именем ImageHandler и настройки: request path: * .png, * .jpeg, *. Jpg, *. Gif исполняемый файл: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi .dll, Все глаголы и тип пути: неуказанный – martmartius

+0

Если это сработало для вас, можете ли вы отметить, как ответили, пожалуйста? – Paul

 Смежные вопросы

  • Нет связанных вопросов^_^