Подтвердить что ты не робот

Создайте маршрут для корневого пути, '/', с ServiceStack

Я пытаюсь установить RestPath для root, '/', но это не позволяет мне. Его высказывание RestPath '/' on Type 'MainTasks' is not Valid

Есть ли способ разрешить это? Я хотел бы предоставить ресурс из корня.

[Route("/", "GET")]
public class MainTasks : IReturn<MainTasksResponse>
{
}
4b9b3361

Ответ 1

Вы можете сопоставлять только маршрут / в ServiceStack с FallbackRoute, например:

[FallbackRoute("/{Path*}")]
public class Fallback
{
    public string Path { get; set; }
}

Это использует подстановочный знак для обработки каждого непревзойденного маршрута (вкл./foo/bar). Разрешен только 1 резервный маршрут.

Существует также несколько других способов обработки корневого пути по умолчанию /:

  • Измените EndpointHostConfig.DefaultRedirectPath на перенаправление на службу, которую вы хотите использовать
  • Добавить default.cshtml Razor или Markdown View или статический default.htm (для запросов HTML)
  • Зарегистрировать a EndpointHostConfig.RawHttpHandlers - это первый обработчик, просмотренный в Order of Operations Order.
  • Зарегистрировать a IAppHost.CatchAllHandlers - Это вызвано для несогласованных запросов.
  • Обработать запрос в Глобальный фильтр запросов

Ответ 2

Это сработало для меня. Я только что добавил RawHttpHandler и переписал путь запроса. Работал как чемпион. (Это можно найти в моей функции настройки AppHost.)

var conf = new EndpointHostConfig();
{
    DefaultRedirectPath = "/foo",
    AllowFileExtensions = { { "eot" }, { "svg" }, { "ttf" }, { "woff" } },
};

conf.RawHttpHandlers.Add(r =>
{
    if (r.RawUrl == "/")
    {
        HttpContext.Current.RewritePath(conf.DefaultRedirectPath);
    }

    return null;
});

this.SetConfig(conf);

Ответ 3

Я пытался это сделать и нашел метод Кристофера Дэвиса больше не работать в последнем стеке службы для самостоятельной службы. Ниже приведено мое обслуживание, которое не выполняет никаких параметров.

[FallbackRoute ( "/" )]