Проблема с обработчиком HTTP - PullRequest
       11

Проблема с обработчиком HTTP

2 голосов
/ 14 февраля 2009

У меня настроен обработчик HTTP в файле web.config:

        <add verb="*" path="*_*.aspx" type="SeoHandler"/>

И файл SeoHandler.ashx в корне моего веб-сайта, который указывает на SeoHandler.ashx.cs в папке App_Code (веб-сайт не является проектом веб-приложения).

Когда я запускаю сайт локально и набираю URL-адрес, такой как "dork_test.aspx", запрос перенаправляется в обработчик, где он затем заботится о бизнесе.

Но когда скомпилированный сайт работает на моем домене, "dork_test.aspx" приведет к:

Ошибка сервера в приложении '/'.

Ресурс не найден.

Описание: HTTP 404. Ресурс вы ищете (или один из его зависимости) можно было бы удалить, изменилось ли его имя, или Временно недоступен. пожалуйста просмотрите следующий URL и убедитесь, что что написано правильно.

Запрошенный URL: /dork_test.aspx

Почему SeoHandler перехватывает запрос "dork_test.aspx" локально, но не на сервере?

Не уверен, имеет ли это значение, но когда я нажимаю URL SeoHandler.ashx в моем домене, обработчик работает так, как и предполагалось.

Возможно ли, что у веб-хоста есть какая-то настройка IIS, которая игнорирует мою запись в <httpHandlers>?

Ответы [ 3 ]

8 голосов
/ 14 февраля 2009

Проверьте в IIS на сервере, что обработчик .NET не настроен для проверки наличия запрошенного пути:

  • Перейти к свойствам веб-сайта или виртуального каталога
  • Вкладка "Домашний каталог"
  • Нажмите «Конфигурация» в нижней части
  • Найдите расширение для .ASPX и нажмите «Изменить», есть флажок «Проверить, что файл существует».

Если этот флажок установлен, .NET не будет обслуживать запросы, которые не отображаются в физический файл в том же месте.

1 голос
/ 09 февраля 2010

Рекс М получил правильный ответ, но я только что попробовал что-то похожее для обработки .jpg, и это не удалось.

Флажок с надписью «Убедитесь, что файл существует» очень важен, но все же у вас есть проблема с авторизацией для этой папки.

Затем я попытался изменить новый файл web.config, который я добавил для этой папки и добавил

    <authorization>
                       <allow users="*" />
    </authorization>

И это сработало. Так что в процессе авторизации происходит что-то, что не позволяет мне обрабатывать запросы .jpg. И да, я авторизован в этом приложении, и он все равно не работает, если я пытаюсь запросить .jpg.

Надеюсь, что это решит, чтобы доказать, что ваш обработчик работает нормально, но для этого у вас должна быть серьезная проблема безопасности ...

1 голос
/ 14 февраля 2009

Я могу заставить его работать на IIS 7. Вы используете поставщика общего хостинга, на котором установлено что-то вроде URLScan? Можете ли вы увидеть, есть ли нестандартные настройки на уровне сервера?

...