2014-11-04 2 views
0

У меня есть созданный httphandler в отдельной сборке из моего основного приложения, поэтому я могу повторно использовать код elsewere. Ниже приведен пример кода, я использую для обработчикаHttpHandler в отдельной сборке всегда возвращает 404

namespace LifespeakCustomFields{ 
public class CustomFieldsHandler : IHttpHandler 
{ 
public void ProcessRequest(HttpContext context) 
    { 
.... 

В web.config моего основного приложения (с использованием mvc3, .net 4.5) Я добавил следующую запись к элементу system.webServer (я Я использую IIS7 интегрированный режим)

<handlers> 
     <add name="CustomFieldsHandler" path="*.myhandler" verb="*" type="LifespeakCustomFields.CustomFieldsHandler" resourceType="Unspecified" preCondition="integratedMode" /> 
    </handlers> 

Это кажется правильной конфигурации, однако, когда я сделать запрос на этот ресурс (/test.myhandler), он всегда возвращает 404 ошибку, хотя она явно существует. Не знаю, в чем проблема.

+0

Вероятно, вам необходимо зарегистрировать «.myhandler» расширение или все запросы идут через ASP.Net - http://stackoverflow.com/a/4264256/477420 –

ответ

0

, например. для этого обработчика:

<system.webServer> 
    <modules> 
     <remove name="FormsAuthentication" /> 
    </modules> 
    <handlers> 
     <add name="TestHandler" path="testhandler" type="ClassLibrary1.TestHandler,ClassLibrary1" verb="*" preCondition="integratedMode"/> 
    </handlers> 
    </system.webServer> 

но вы также должны сказать игнорирования пути к маршруту MVC, в RouteConfig.cs:

routes.IgnoreRoute("testhandler"); 
+0

Спасибо, путь добавлялся к маршрутам mvc, поэтому добавление директивы ignoreroute устранило проблему. Тем не менее, мне пришлось использовать следующие пути path.IgnoreRoute ("{resource} .testhandler/{* pathInfo}"); поэтому маршрутизатор будет неправильно проигнорирован. – Daryl1976

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