Итак, я столкнулся со следующей проблемой.
1) Создание нового приложения asp core 2.1 (шаблон MVC)
2) Добавление нового контроллера:
[EnableCors]
public class ApiController : Controller
{
public string Get(int id)
{
return $"You sent {id}";
}
}
3) Включение CORS в Startup.cs:
app.UseCors(builder => builder.AllowAnyOrigin());
4) Создание классического / .net основного консольного приложения со следующим кодом:
class Program
{
static void Main(string[] args)
{
AsyncMethod();
}
private static async void AsyncMethod()
{
Task.Delay(5000).Wait();
var http = new HttpClient();
var url = "https://localhost:44353/api/get/4";
var response = await http.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
Если я добавлю код непосредственно в Main () или даже создаю приложение WPF / UWP / WinForms и вставлю туда этот код, все равно ничего не получится. Оба (классические и .core) консольные приложения просто завершают отладку без каких-либо исключений или сообщений и только в окне отладки.
The program "[10340] dotnet.exe" ended with code 0 (0x0).
Program "[10340] dotnet.exe: Program Tracing" ended with code 0 (0x0).
Замена этого кода с использованием WebClient не помогла. Более того, в классическом приложении ASP MVC 4 этот код прекрасно работает, поэтому мое консольное приложение корректно. Но этот код не работает с приложением .Core.
Почтальон и клиент RESTed прекрасно видят API и могут отправлять запросы без проблем.
Чего мне не хватает?