C # .NET Core 2.2 Web-Api 500 только на Kestrel только одна конечная точка - PullRequest
0 голосов
/ 17 июня 2019

Я получил проект Web-Api.Этот проект выкатывается на пустельгу как услуга.Теперь одна из всех моих конечных точек возвращает 500, остальные работают нормально.И 500 я получаю только на kestrel, также используя локальную kestrel для отладки.

Я очищаю свой контроллер (код внутри класса контроллера), упрощая, как код ниже.Я пытался изменить имя.Это все не имеет значения.И контроллер выглядит так же, как другие классы контроллеров.

Я знаю, это сложный вопрос, но где я могу найти решение этой проблемы, чтобы я всегда получал 500 ответов сразу?

Франк

namespace DataPicker.Api.Controllers
{
  [Produces("application/json")]
  [Route("api/v1/dataPicker/environmentData")]
  public class TimeSeriesController : Controller
  {
    public TimeSeriesController(){}

    [HttpPost()]
    public async Task<IActionResult> 
    CreateAsync([FromBody]Data data)
    {
        return Ok("received");
    }

    public class Data
    {
        [JsonProperty("text", Required = Required.AllowNull)]
        public string Text { get; set; }
    }
  }
}

Curl: curl -X POST "http://localhost:5000/api/v1/dataPicker/environmentData" -H" принять: application / json "-H" Тип содержимого: application / json "-d "{\" text \ ": \" string \ "}"

Ответ: 500, ошибка: внутренняя ошибка сервера Заголовки ответа content-length: 0 date: Mon, 17 Jun 2019 16:18:24GMT сервер: Kestrel

1 Ответ

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

Я не понимаю, как решение подходит к проблеме, но я получил его, установив URL-адреса иначе, чем раньше:

launchSettings.json:

"Kestrel": {
  "commandName": "Project",
  "launchBrowser": true,
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  },
  "applicationUrl": "http://localhost:5000/"
}

Programm.cs:

        public static IWebHostBuilder BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseApplicationInsights()
            .UseUrls("http://0.0.0.0:5000")
            .UseKestrel();
...