Не удалось настроить маршрут для вызова метода контроллера

Я не могу настроить маршрут к моему методу контроллера. Я всегда получаю следующую ошибку в браузере:

<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:8080/TextToSpeech'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'TextToSpeech'.
</MessageDetail>
</Error>

Я пытаюсь создать простой веб-сервис для преобразования текста в речь с использованием собственного хостинга ASP.NET.

Под кодом контроллера:

using System.Web.Http;

namespace RESTService.Controller
{
  public class TextToSpeechController : ApiController
  {
    [HttpGet, ActionName("Get")]
    [AllowAnonymous]
    public void Get()
    {

    }
  }
}

И приложение:

var config = new HttpSelfHostConfiguration("http://localhost:8080");
      config.Routes.MapHttpRoute("TTS", "{controller}", new { action = "Get" });

using (HttpSelfHostServer server = new HttpSelfHostServer(config))
{
  server.OpenAsync().Wait();
  Console.WriteLine("Press Enter to quit.");
  Console.ReadLine();
}

Совет о том, как я могу заставить это работать, был бы очень признателен.

Обновлять

Мне удалось заставить его работать, указав пространство имен, в котором находится контроллер:

var config = new HttpSelfHostConfiguration("http://localhost:8080");
config.Routes.MapHttpRoute("TTS", "{controller}/{text}", 
  new[] { "RESTService.Controller" });

Пробовали http://localhost:8080/TextToSpeech/Get?

Mohsin Mehmood 22.05.2019 16:52

Привет @MohsinMehmood, спасибо за ваш ответ. Нет, к сожалению, этот URL тоже не работает. С наилучшими пожеланиями

Patrik Gfeller 24.05.2019 07:44

У вас есть база как ApiController. Попробуйте это: локальный: 8080/API/TextToSpeech

Praneet Nadkar 24.05.2019 09:02

Я предлагаю вам ответить на свой вопрос. Это сделает эти вопросы и ответы более доступными для других с той же проблемой.

Sefe 24.05.2019 09:04

Зачем вам это нужно: HttpSelfHostConfiguration. Просто назовите это как api/TextToSpeech

Praneet Nadkar 24.05.2019 10:52
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
5
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне удалось заставить его работать, указав пространство имен, в котором находится контроллер:

var config = new HttpSelfHostConfiguration("http://localhost:8080");
config.Routes.MapHttpRoute("TTS", "{controller}/{text}", 
  new[] { "RESTService.Controller" });

Другие вопросы по теме