Обновление IIS НЕ обратно совместимо?

У меня есть ряд веб-страниц, которые работают, если сервер IIS (5.1).

Страницы используют VBscript на страницах .ASP, которые отображают и заполняют серверную базу данных. Эти страницы работают на 100% без ошибок в течение многих лет. Я загрузил инструмент Microsoft (Visual Studio Express), чтобы попробовать его. После загрузки инструмента сервер IIS начал выдавать ошибки при попытке обновления страниц .asp. Я думаю, что загрузка пыталась обновить мой веб-сервер. Я удалил Visual Studio Express из своей системы. После многочисленных попыток определить источник ошибки (ПРИМЕЧАНИЕ: код не изменился после загрузки инструмента) я определил, что ошибка возникает, когда символы “<><>” отправляются во время обновления. ПРИМЕЧАНИЕ. Я использую <><><><> в динамически создаваемых раскрывающихся списках по умолчанию.

В конечном итоге решение проблемы было простым, я просто изменил значение по умолчанию на “---------“ в раскрывающихся списках вместо “<><><><><>”.

Вопрос в том, почему что-то, что работало на 100% более 9 лет, внезапно перестало работать, и есть ли параметр конфигурации, который я могу изменить, чтобы сервер не выдавал ошибку на <> символах.

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


person Community    schedule 01.06.2009    source источник
comment
Вы загрузили инструмент разработки на рабочий сервер? Ну, в любом случае ВСЕ не должны ломать asp-страницы. Можете ли вы дать нам еще несколько подсказок, таких как коды ошибок или сообщения. Как вы отправляете персонажей? Они закодированы в html?   -  person jmservera    schedule 01.06.2009


Ответы (2)


Я знаю, что в ASP.Net есть свойство ValidateRequest, которое не позволяет использовать определенные символы в определенных местах для предотвращения некоторых хакерских атак. Это по умолчанию включено. И я считаю, что IIS 7 (возможно, также 6) в некоторой степени рассматривает все сайты как приложение ASP.Net (использует файл web.config). Это не проверенный факт, но файлы web.config отображаются, даже когда я тестирую сайт только с файлами .html.

В ASP.Net вы можете изменить свойство ValidateRequest=true (по умолчанию) на ValidateRequest=false в файле web.config. Это, вероятно, остановит проверку на стороне сервера и позволит пройти вашим значениям по умолчанию.

Добавьте <pages validateRequest="false" /> в раздел system.web файла web.config.

person Jared    schedule 01.06.2009

Вероятно, он рассматривает угловые скобки как потенциальные атаки межсайтового скриптинга — по умолчанию в наши дни asp.net (я знаю, что вы используете ASP, а не ASP.NET) выдает исключение о «Потенциально опасной обратной передаче», когда вы отправляете строка с угловыми скобками.

Возможно ли, что, установив VS (и, следовательно, платформу DotNet), вы настроили веб-сайт, на котором размещены эти страницы, для использования ASP.NET?

Вы пытались удалить регистрацию ASP.NET с этого сайта? Вы можете сделать это, запустив aspnet_regiis с ключом "-ua". Этот инструмент командной строки можно найти в:

C:\Windows\Microsoft.NET\Framework[vX.YYY]\

Где X.YYY — это либо 1.1.4322, либо 2.0.50727.

person Zhaph - Ben Duguid    schedule 01.06.2009