Поймать все маршруты не работают после обновления Asp.Net WebApi 5.2.2 до 5.2.7 - PullRequest
3 голосов
/ 06 марта 2019

Рассмотрим следующий маршрут

HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
    "myApi",
    baseRoute + "myApi/file/{param1}/{*param2}",
    new {controller = "File"}
);

Этот универсальный маршрут запускает FileController

[HttpGet]
public object Get(string param1, string param2)
{
    //...
}

В WebApi 5.2.2 контроллер запускается с помощью URL

Второй случай приводит к тому, что param2 = "b / c / d / e" работает так, как работает этот универсальный маршрут (по крайней мере, для версии 5.2.2).

Проблема теперь в том, что для версии 5.2.7 второй случай больше не работает. В заметках о выпуске 1020 * я ничего не видел. У кого-нибудь есть идеи в чем проблема?

EDIT

Я обобщил проблему на многое в своем вопросе. У меня проблема с

Точечный символ вызывает проблему, кажется.

1 Ответ

0 голосов
/ 19 марта 2019

Решение в моем случае было следующим. Мне пришлось добавить дополнительный обработчик URL без расширения.

Так дополнительно к

<add name="ExtensionlessUrlHandler-Integrated-4.0_1a" path="*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

Мне нужно

<add name="ExtensionlessUrlHandler-Integrated-4.0_1a" path="*.*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
...