Вопрос

Я только что обновил свою старую систему URL-адресов, основанную на сопоставлении с использованием подстановочных знаков, для использования System.Web.Routing. Раньше я мог запросить URL /Service/GetItems<My.Full.Item.Type>, который был проанализирован на другой стороне и возвращал именно то, что вы ожидали. Это было опрятно.

Теперь при включенной маршрутизации любой запрос с < или > в нем возвращается содержимое '/' вместо страницы, которую я хотел. Даже если я закодирую их в% 3C и% 3E, меня перенаправят в корень независимо от того, что говорится в остальной части URL.

Мне бы понравилось, если бы мне не приходилось проходить через мое приложение, меняя все экземпляры интуитивных общих ссылок на временное решение, которое я придумала: /Service/GetItems/T=My.Full.Item.Type. Не так приятно.

Спасибо всем!

Это было полезно?

Решение

Похоже, вы столкнулись с проблемой ограниченных символов в URL. Обратите внимание, что это не имеет ничего общего с маршрутизацией, но с ASP.NET блокирует определенные символы в URL.

Почему раньше это работало с перезаписью URL? Скорее всего, потому что URL был переписан так, чтобы эти символы были в строке запроса перед его передачей в ASP.NET.

Есть некоторые вещи, которые вы можете попробовать.

В настройках реестра разрешены запрещенные символы http://support.microsoft.com/kb/820129.

Вот еще одна статья поддержки: http: // support.microsoft.com/default.aspx?scid=kb;EN-US;826437

В ASP.NET 4 мы планируем значительно упростить настройку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top