ASHX отображается как разбитое изображение - PullRequest
1 голос
/ 11 апреля 2011

У меня действительно неприятная проблема с обработчиком ASHX, который отображает изображение с картинки.То, что делает его действительно неприятным, это то, что он работал нормально два месяца назад, и когда я вернулся к нему сегодня, он перестал работать.

У меня есть страница, которая добавляет капчу каждый разтак часто.Это разметка из примера запроса:

<img class="challengedtl" src="Challenge.ashx?tkn=0057ea27-4d35-4850-9c6f-7a6fdc9818e2"/>

GUID ссылается на запись в таблице SQL, которая содержит фактическое содержимое капчи, а также статус запроса капчи, т.е. имеет егобыли обработаны, и если да, то пользователь правильно понял и т. д.

На странице, где обнаружена эта разметка, изображение отображается в виде разбитого JPEG.Когда я отбрасываю точку останова в методе ASHX ProcessRequest (), я вижу, что ASHX никогда не вызывается.

Когда я вынимаю URL из атрибута источника и запускаю его прямо из адресной строки в моем браузере, затем я достигаю своей точки останова в ProcessRequest, и изображение captch отображается очень хорошо.

Я не верю, что мой ASHX-код является проблемой, так как он работает, когда я вызываю его напрямую.Кажется, проблема в том, почему ASHX не вызывается главной страницей.Учитывая, что это работало в феврале, я не могу объяснить, что происходит.

Я знаю, что с моей машиной что-то случилось с тех пор.Я подозреваю, что Центр обновления Windows или пакет обновления для чего-то.Причина в том, что моя обработка капчи включает в себя отслеживание IP-адреса звонящего.Назад, когда это работало, мой локальный хост был зарегистрирован как 127.0.0.1 (IPv4), но теперь он регистрируется как :: 1 (IPv6).Вероятно, красная сельдь.

Кто-нибудь знает, что может быть причиной этого, или у вас есть какие-либо предложения по устранению этой проблемы?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

Вот две ключевые части:

Когда я отбрасываю точку останова в методе ASHX ProcessRequest (), я вижу, что ASHX никогда не вызывается.

и

src = "Challenge.ashx? tkn = 0057ea27-4d35-4850-9c6f-7a6fdc9818e2"

Соедините их вместе, и мы можем предположить,путь в вашем атрибуте src неверен.

Это просто тег изображения.Если html загружает его, будет отправлять запрос на этот ресурс.Поскольку ваша точка останова не достигнута, это может означать, что вы либо не тестируете где-либо, где разрешены точки останова, либо отправляет запрос в неправильное место.

Это может быть так же просто, как отправить запрос в рабочую версию сайта, использовать неверную схему (например, https vs http) или где-нибудь пропустить папку или номер порта.Браузер должен дать вам полный путь к ресурсу - убедитесь, что он соответствует ожидаемому.

2 голосов
/ 11 апреля 2011

Является ли обработчик в той же папке, что и страница, содержащая HTML, который вы разместили выше?

...