Я пытаюсь заставить пользовательский обработчик работать с определенным URL (или набором URL-адресов) в ASP.NET 3.5.
Обработчик фактически не делает ничего существенного - он просто регистрирует запрос. Я могу опубликовать код, если он имеет значение, но я действительно не думаю, что его вообще называют. (В частности, для нормальных исключений я получаю пользовательскую страницу ошибок и протоколирование... здесь я просто получаю ванильный IIS 404.)
Здесь соответствующий бит файла web.config
:
<system.web>
<httpHandlers>
<add verb="GET,POST" path="*.robot" validate="false"
type="CSharpInDepth.Wave.RobotHandler, CSharpInDepth"/>
</httpHandlers>
</system.web>
(Очевидно, что в этом разделе есть и другие вещи, но я не думаю, что это релевантно.)
Локально, работая под сервером dev, он отлично работает. На моей реальной коробке я всегда получаю 404. Все под каталогом веб-сайта одинаково (реплицируется через svn). Это включает каталог bin
, содержащий CSharpInDepth.dll
, который я проверил, содержит CSharpInDepth.Wave.RobotHandler
.
Я пытаюсь извлечь http://csharpindepth.com/foo.robot и просто получить 404.
Я пробовал с и без имени сборки, конкретных URL-адресов или подстановочных... ничего не работает.
Я уверен, что я просто пропустил какой-то простой флаг где-то в конфигурации IIS, но я взорван, если найду его...
EDIT: это версия IIS 6. Попытка добавить *.robot к фильтру ISAPI теперь...