Я пытаюсь сгенерировать 404 для определенных запросов на всех сайтах на сервере на основе настроенных HttpRequest.UserAgent
.
.IHttpModule
в глобальном web.config
сервера, содержащем код ниже:
private void Application_BeginRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
if (isBot(context.Request.UserAgent))
{
System.Diagnostics.EventLog.WriteEntry(
"Application",
"\nBotRequestChecker -- request 404d\n" + "Url: " +
context.Request.Url + "\nUserAgent: " + context.Request.UserAgent,
EventLogEntryType.Information);
context.Response.StatusCode = 404;
context.Response.StatusDescription = "Not Found";
context.ApplicationInstance.CompleteRequest();
}
}
Установка User-Agent
в браузере и посещение страницы приводит к записи в журнале событий, но страницатакже вернулся, без статуса 404.
Есть мысли о том, что мне не хватает?
Обновление:
IHttpModule
, похоже, действительносработает, если я добавлю его на один сайт (в web.config
сайта), но не на все сайты.
Обновление 2: IHttpModule
работает только на одном сайте всервер IIS7 , не включенный IIS6 .