Я создал пример проекта, чтобы упростить мою проблему. У меня есть этот простой обработчик:
public class HandleThis : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest( System.Web.HttpContext context )
{
// Score.aspx just says "success"
context.Response.Redirect( "Score.aspx" );
}
public bool IsReusable { get { return true; } }
}
Тогда, в моем конфиге, у меня есть это:
<httpHandlers>
<add verb="*"
path="Survey"
type="HttpHandlerTest.HandleThis, HttpHandlerTest" />
Теперь, когда я нажимаю http://server/Survey, мой обработчик срабатывает.
Если я изменю свой проект для работы с IIS 6, он не сработает (404).
Я попытался вручную добавить обработчик в IIS через:
- Свойства веб-сайта
- Главная Каталог
- Конфигурация
- Добавить (просмотрите .dll моего сайта), Расширение: Опрос, снимите флажок «Проверить, что файл существует»
Я заметил, что IIS (так услужливо) добавляет "." перед моим расширением, поэтому я попал на сайт с "b.Survey"; еще 404.
Конечно, можно добавить обработчик в IIS 6?