Перенаправление URL-адреса IIS7 Не работает для страниц ASPX с двоеточиями в имени

Это связано с предыдущей (без ответа) проблемой, с которой я столкнулся при попытке отловить ошибки запроса в Global.asax, но теперь, похоже, он стал более распространенным.

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

[NotSupportedException: данный формат пути не поддерживается.]

Кто-нибудь еще сталкивался с этой проблемой?


person roryok    schedule 11.08.2010    source источник


Ответы (1)


Возможно, IIS обрабатывает двоеточие так, как будто оно должно предшествовать номеру порта (http://mysite.com:12345 ) или какой-либо другой вызов команды уровня IIS или ОС. Таким образом, это может быть подозрительно в отношении какой-либо инъекции кода.

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

У Гензельмана также был интересный рассказ о черной магии, переписывающей URL-адреса - посмотрите середину статьи, чтобы узнать больше о символе двоеточия. http://www.hanselman.com/blog/AndrantsIndexIndexIndex.html

person Community    schedule 11.08.2010
comment
В ссылке Hanselman.com упоминается настройка ‹pages validateRequest = false /›. Я пробовал это раньше, когда использовал метод Global.asax, и это не дало результата. Повторная попытка с перезаписью URL окупилась, так как теперь она работает! Спасибо. - person roryok; 18.08.2010
comment
Еще одна интересная разработка здесь, это работает, только если для режима перезаписи URL установлено значение «перезапись», а не «перенаправление». Установка на «перенаправление» вызывает то же исключение NotSupportedException. - person roryok; 18.08.2010