У меня есть проблемы при попытке отобразить HttpHandler в web.config.
Это - соответствующий бит конфигурации:
<httpHandlers>
<add verb="*" path="*.hndlr" type="MyAssembly.MyHandler, MyAssembly" validate="false" />
</httpHandlers>
Когда я перешел к http://localhost/myApp/whatever.hndlr
Я получаю ошибку сервера 404 (не найденный).
Это - 1-й раз, когда я - присоединение HttpHandler, таким образом, я мог бы пропускать что-то - любая ценившая справка!
ОБНОВЛЕНИЕ:
Мне удалось получить его работа с помощью обоих ответов до сих пор - кто может к exaplin, почему это работает, отметили ответ!
Это - моя конфигурация (не будет работать, если не будут иметь обоих - я выполняю IIS7 в классическом режиме),
System.web:
<httpHandlers>
<add verb="*" path="*MyHandler.hndlr" type="MyAssembly.MyAssemblyHandler, MyAssembly" validate="false"/>
</httpHandlers>
System.webserver:
<handlers>
<add name="MyHandler" verb="*" path="*MyHandler.hndlr" type="MyAssembly.MyAssemblyHandler, MyAssembly" validate="false" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
Используете ли вы IIS7, если пул приложений работает в классическом или конвейерном режиме? Если это IIS7 в конвейерном режиме, тогда ссылка на обработчик должна перейти в следующий раздел
<system.webServer>
<handlers>
</handlers>
<system.webServer>
, а не в следующий раздел.
<system.web>
<httpHandlers>
</httpHandlers>
</system.web>
Какое расширение у вашего обработчика? Если вы используете собственное расширение, такое как .hndlr , вам также может потребоваться добавить ScriptMap в IIS и указать его на среду выполнения ASP.NET, чтобы IIS мог перенаправить запрос на правильный процессор.
Затем в вашем web.config вам нужно будет зарегистрировать обработчик в соответствующем разделе, как описано в другом ответе.