В настоящее время я работаю над приложением Po C (подтверждение концепции) с Blazor в интерфейсе и веб-интерфейсом c# в фоновом режиме для доступа к данным.
Я получаю ERR_CONNECTION_REFUSED каждый раз, когда хочу получить доступ к API. У меня какая-то странная настройка.
- Я использую gitpod для разработки (Online IDE, визуальный код студии онлайн)
- Все это работает на виртуальном сервере Ubuntu
Структура папок:
blazor_po c
API
Контроллеры
ApiRunningController.cs
BlazorApp
Страницы
Index.razor
Мне нужно вызвать API из Index.razor. Я называю API следующим образом:
protected override async Task OnInitializedAsync()
{
try
{
status = await Http.GetJsonAsync<string>("https://localhost:8394/ApiRunningController");
}
catch(Exception e)
{
requestSuccess = false;
status = "ERROR: " + e.Message;
}
}
Так выглядит конфигурация API. launchSettings. json (только раздел "api": {}):
"api": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "apirunningcontroller",
"applicationUrl": "https://localhost:8394;http://localhost:8393",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
Мои методы ConfigureServices () и Configure () в файле Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddCors();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.UseCors(c => c
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
);
}
Контроллер Api:
[ApiController]
[Route("[controller]")]
public class ApiRunningController : ControllerBase
{
// Some other code like initializing a logger in the constructor etc...
[HttpGet]
public string Get()
{
ApiModel model = new ApiModel();
return model.Status;
}
}
Это много кода, я думаю, что я опубликовал важные фрагменты кода. Если я что-то забыл, не против оставить комментарий. Я опубликую это как можно скорее.