Почему мой HttpHandler не запускается?

Я пытаюсь использовать http-хадлер, поэтому я создал проект библиотеки классов и добавил этот код:

 namespace MyProject.Handlers
{
    public class Class1 : IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }

        public void ProcessRequest(HttpContext context)
        {
            context.Response.Write("Hello from custom handler.");
        }
    }
}

Затем я скомпилировал его, и он сгенерировал файл MyProject.Handlers.dll. Я положил его в папку bin asp.net и добавил в asp.net

<system.webServer>
    <handlers>
        <add name="TutorialHandler" verb="*" path="*" type="MyProject.Handlers.Class1, MyProject.Handlers" modules="IsapiModule" scriptProcessor="c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="File" />
    </handlers>
<modules runAllManagedModulesForAllRequests="true">
    //some stuff I *think* it doesn't make a difference
</modules>
//some stuff I *think* it doesn't make a difference
</system.webServer>

и

<system.web>
 <httpHandlers>
      <add verb="*" path="*" type="MyProject.Handlers.Class1, MyProject.Handlers" />
    </httpHandlers>
  </system.web>

Но его просто не называют! Я запускаю отладчик, устанавливаю точку останова, но это не останавливается. Если я проверю выходной html в firebug, предложения «Hello from custom handler» там нет.

Что я делаю неправильно?

Спасибо Оскар

РЕДАКТИРОВАТЬ: я использую framework 4.0, IIS7. Может быть, я использую маршруты? (не вызывая напрямую index.aspx, а / home или что-то в этом роде?)


person JSBach    schedule 05.01.2013    source источник
comment
Все выглядит правильно ... вы загружаете страницу с правильного пути?   -  person ic3b3rg    schedule 06.01.2013
comment
Попробуйте изменить путь к handler.ashx и загрузить эту конкретную страницу   -  person ic3b3rg    schedule 06.01.2013
comment
Какую версию .NET Framework вы используете?   -  person nerdybeardo    schedule 06.01.2013
comment
@ ic3berg Я изменил оба пути на home.aspx и загрузил localhost / home.aspx. Не сработало :(   -  person JSBach    schedule 06.01.2013
comment
попробуйте использовать папку App_Code для исходных файлов (не dll)   -  person ic3b3rg    schedule 06.01.2013
comment
@Moe Framework 4.0 и IIS7,   -  person JSBach    schedule 06.01.2013
comment
возможно, вам нужно <clear /> перед добавлением обработчика в файл конфигурации   -  person metadings    schedule 06.01.2013
comment
Вы добавляли ссылку на эту dll?   -  person erichste    schedule 06.01.2013
comment
Там ясно, есть ссылка на DLL. Я добавил его в начало моего списка, и он загружается, но у меня возникают проблемы с правильным значением пути: я использую маршрутизацию mvc, поэтому я не могу добавить * .aspx к пути. Какую ценность я должен добавить?   -  person JSBach    schedule 07.01.2013


Ответы (1)


По какой-то причине его не вызывали, когда он находился в конце списка обработчиков. Я переместился наверх и получил странную ошибку относительно webresources.axd. Резонансом был путь = "*". Мне не удалось найти подходящий путь, потому что я использую маршруты.

В конце концов я обнаружил, что использовал неправильный инструмент: мне подходили модули, а не обработчики, потому что я хотел бы добавлять что-то в свой вывод в зависимости от случая. Поэтому я изменил свой подход к использованию модулей, и теперь он выглядит хорошо. Спасибо всем, что помогли мне с комментариями!

person JSBach    schedule 07.01.2013