MVC API Http Routing - PullRequest
       9

MVC API Http Routing

0 голосов
/ 24 июня 2019

У меня есть веб-API MVC на .NET Core 2.2

Когда я запускаю свой API локально, все мои маршруты, кажется, работают нормально, но когда я внедряю это в Azure / на моем сервере, маршруты кажутсявозвращает ошибку 404.

Это мой 'PricesController', в котором закодированы маршруты:

namespace tf.PriceService.API.Controllers
{
[Route("HorseRacingApi/prices/")]
[Produces("application/json")]
[ApiController]
public class PricesController : Controller
{
    private readonly IPriceService _priceService;

    public PricesController(IPriceService priceService)
    {
        _priceService = priceService;
    }

    [HttpGet]
    [Route("GetPricesForRace/{meetingDate}/{courseId}/{raceNumber}/{ShowAll?}")]
    public IActionResult GetPricesForRace(DateTime meetingDate, int courseId, int raceNumber, bool? ShowAll = false)
    {
        return Ok(_priceService.GetPricesForRace(meetingDate, courseId, raceNumber));
    }

    [HttpGet]
    [Route("GetPriceForEntry/{meetingDate}/{courseId}/{raceNumber}/{horseCode}")]
    public IActionResult GetPriceForEntry(DateTime meetingDate, int courseId, int raceNumber, string horseCode)
    {
        return Ok(_priceService.GetPriceForEntry(meetingDate, courseId, raceNumber, horseCode));
    }

    [HttpGet]
    [Route("GetPriceForEntries/{ShowAll?}")]
    public IActionResult GetPriceForEntries(bool? ShowAll)
    {
        string jsonString = null;

        using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
        {
            jsonString = reader.ReadToEnd();
        }

        List<Core.Models.JsonEntryKey> list = JsonConvert.DeserializeObject<List<Core.Models.JsonEntryKey>>(jsonString);

        return Ok(_priceService.GetPriceForEntries(list));
    }
}

}

Использование следующего URL работает локально: https://localhost:44374/HorseRacingApi/prices/GetPricesForRace/2019-06-24/47/1

, но не работает для версии Azure и возвращает 404. Я что-то упустил?Кроме того, тип возвращаемого значения - JSON, если это помогает.

Спасибо.

1 Ответ

0 голосов
/ 25 июня 2019

Пожалуйста, установите ваш web.config как показано ниже:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
  <remove name="aspNetCore"/>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
  <aspNetCore processPath="dotnet" arguments=".\Somerandomname.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>

Дополнительная информация, вы можете посетить эту ссылку . Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...