Рассмотрим файл Web.config
, содержащий следующее объявление httpHandlers
:
<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, который не соответствует «некоторому условию» в «если».Поэтому кажется, что возврат null
- это неправильная вещь.
Так что мне нужно вместо этого вернуть, чтобы страницы и веб-службы ASP.NET по-прежнему обрабатывались нормально?