В моем случае я не использовал /etc/nginx/sites-available/default
Я использовал другой файл конфигурации блока сервера (например, example.com), и единственный способ, которым я смог исправить эту проблему, - удалить файл конфигурации сервера по умолчанию, символический link:
$ rm /etc/nginx/sites-enabled/default
, затем перезагрузка Nginx:
$ sudo systemctl reload nginx
используйте префикс router с вашим контроллером. Таким образом, вы получаете доступ к URL-адресу как
http://localhost/routerprefix/router
. Класс HttpClient можно использовать для отправки и получения HTTP-запросов и ответов. Поскольку вы пытаетесь использовать WebApi со страницы aspx, лучшим способом является создание экземпляра HttpClient
Ниже приведена очень простая реализация. Пожалуйста, проверьте этот URL для получения дополнительной информации
HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync("http://localhost:49342/api/get"); if (response.IsSuccessStatusCode) { product = await response.Content.ReadAsAsync(); }
На первый взгляд, все выглядит правильно:
вы получили:
config.MapHttpAttributeRoutes();
- настройте маршрут атрибута config.Routes.MapHttpRoute(
- установить маршрут по умолчанию GlobalConfiguration.Configure(WebApiConfig.Register);
- зарегистрироваться при запуске , чтобы он работал.
Думаю, проблема в том, как вы ее называете
Маршрутизация WebAPI немного отличается от MVC
, например:
В методе get get маршрут установлен как показано ниже
[HttpGet, Route("api/get")]
, поэтому вы должны назвать его {host}/api/get
, используя метод GET http
на снимке экрана, который вы вызываете с помощью {host}/api/get/Get
- который не будет работать, потому что ни один маршрут не будет соответствовать
То же самое для вашего метода POST
Так что попробуйте еще раз, и вы сможете добраться до него
URL-адрес, который нужно добавить в инструмент тестирования остальных:
http://localhost:49342/api/get
Тип метода: GET
Если вы вызываете этот веб-API со страницы aspx, используйте класс httpClient.