Почему мои фотографии исчезли (404) на ранее работающем веб-сайте?

#asp.net #iis #http-status-code-404 #jpeg

#asp.net #iis #http-status-code-404 #jpeg

Вопрос:

Я создал веб-сайт IIS около полутора лет назад с большим количеством картинок на различных страницах с вкладками aspx / asp. Мой компьютер для разработки — Windows 8.1 Pro с веб-сайтом IIS версии 8.5.9600.16384. Веб-сайт был разработан с использованием Visual Studio 2012. Веб-сайт был опубликован на том же компьютере с Windows.

Опубликованный веб-сайт был затем скопирован на Window Server 2012R2 в IIS версии 8.5.9600.16384 web и работал хорошо. Постепенно поисковые роботы нашли сайт, и все было хорошо.

На этой неделе я зашел, чтобы внести некоторые обновления на сайт, и обнаружил, что ни одна из картинок не работает. Все они возвращают HTML-код 404. Когда я просматриваю файлы .jpg по отдельности из IIS, Firefox возвращает «невозможно отобразить, поскольку он содержит ошибки». Chrome и Edge оба говорят, что файл не может быть найден. Если я просматриваю эти файлы из проводника Windows, они выглядят нормально.

Поэтому я удалил файлы на сервере, а затем скопировал опубликованный веб-сайт со своего компьютера для разработки. По-прежнему никаких фотографий.

У меня есть другое похожее веб-приложение на том же сервере, поэтому я переместил один из файлов jpg в этот каталог и попытался просмотреть его через IIS — все еще 404. Я скопировал изображение с другого веб-сайта в свой «сломанный» каталог, а другое изображение было доступно для просмотра через IIS. Все эти фотографии были уменьшены таким же образом с помощью Photoshop 7.0.

Я вернулся на свой компьютер для разработки и просмотрел исходный веб-сайт через IIS. Изображения были доступны для просмотра, поэтому я переиздал веб-сайт, скопировал его на сервер — никаких изображений.

Затем я нашел исходное изображение (не уменьшенное) и переместил его на сервер. Все еще 404.

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

Веб-сайт работал более года, но теперь изображения возвращают 404.

Изображения можно просматривать на компьютере разработчика с помощью IIS, но не после их публикации, а затем копирования веб-сайта на сервер.

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

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

Комментарии:

1. вы пробовали нажимать ctrl-F5 в браузере во время просмотра страницы?

2. Какова структура каталогов проекта, развернутого в IIS? Вы используете http или https?

Ответ №1:

Первое, с чего я всегда начинаю с отсутствующих изображений, — это просмотреть исходный код и убедиться, что путь к изображению действительно соответствует тому, что я думаю.

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

Возможно, кому-то будет легче получить представление, если вы укажете URL-адрес, чтобы мы могли просмотреть отображаемую страницу.

Комментарии:

1. Если я попытаюсь перейти к файлу .jpg непосредственно из IIS (не используя код webcode) Я все еще получаю ошибку 404. Винтажные обучающие книжки. rohland.org

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

3. Да, ошибка драйвера с моей стороны. Я опубликовал решение — это была проблема с фильтрацией запросов, которую я вызвал.

Ответ №2:

Я почти уверен, что разобрался с проблемой, но это приводит к другим вопросам.

Я сократил имя файла, и теперь я могу перейти к нему через IIS.

Итак, вот мои текущие вопросы:

  1. Почему изображения были доступны для просмотра изначально, но не сейчас? Произошли ли какие-либо изменения в Интернете относительно допустимой длины файла? Или, возможно, какое-то обновление Server 2012R2, которое вызвало это изменение?
  2. Почему эти изображения доступны для просмотра на моем ПК с Windows 8.1 через IIS, но не на сервере 2012R2? Я также могу открыть веб-сайт и просмотреть все изображения в Windows 8.1.

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

Ответ №3:

Я НАКОНЕЦ-то понял, почему исчезли мои фотографии. Да, переименование моих файлов .jpg устранило проблему, но это не было причиной. Проблема заключалась в том, что я добавил /2018, /2019 и / 2020 в свой отказ в фильтрации запросов IIS. На всех моих файлах с фотографиями стояли даты. Когда я переименовал / сократил имена файлов, я удалил /год. Фух! Какие глупости я делаю! Это также объясняло, почему я мог просматривать эти веб-страницы на своем компьютере для разработки, но не на сервере — без фильтрации запросов. Надеюсь, моя ошибка поможет кому-то в дальнейшем.