Рассмотрим Web.config
файл, содержащий следующую httpHandlers
декларацию:Как получить ссылку на обработчик страницы ASP.NET по умолчанию или обработчик веб-сервисов?
<httpHandlers>
<add verb="*" path="*" type="MyWebApp.TotalHandlerFactory"/>
</httpHandlers>
Другими словами, этот обработчик завод хочет «видеть» все входящие запросы, так что он получает возможность обрабатывать их. Однако, это вовсе не обязательно хотят на самом деле обрабатывать все из них, а только те, которые выполняют определенные условия во время выполнения:
public sealed class TotalHandlerFactory : IHttpHandlerFactory
{
public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{
if (some condition is true)
return new MySpecialHttpHandler();
return null;
}
public void ReleaseHandler(IHttpHandler handler) { }
}
Однако, делая это, как это полностью перекрывает обработчик ASP.NET по умолчанию, что означает, что Страницы ASP.NET и веб-службы больше не работают. Я просто получаю пустую страницу для каждого URL-адреса, который не выполняет «какое-то условие» в «if». Поэтому кажется, что возвращение null
- это неправильная вещь.
Итак, что мне нужно для возврата, чтобы страницы ASP.NET и веб-службы по-прежнему обрабатывались нормально?
Я понял, что это HttpHandlerFactory, а не сам обработчик. – Aliostad