Я запускаю приложение веб-службы ASP.NET Core 8.0 на Arm64. На своем компьютере с Windows я разрабатываю приложение, публикую его на Arm64 и копирую на целевой компьютер (Raspberry Pi). Несмотря на то, что каждый файл конфигурации требует, чтобы приложение размещалось на порту 11111 (который мне нужен), когда я запускаю приложение на целевом компьютере, происходит следующее:
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Overriding address(es) 'http://*.11111'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead.
fail: Microsoft.Extensions.Hosting.Internal.Host[11]
Hosting failed to start
System.IO.IOException: Failed to bind to address http://[::]:80: address already in use.
Я перепробовал все с несколькими дублированиями, но мне не удалось разместить его на 11111.
appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"urls": "http://*.11111;http://192.168.1.169:11111;http://localhost:11111;http://<MYDOMAIN>:11111;http://*:11111"
}
Program.cs:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
Constants.LoadConstants();
builder.WebHost.UseUrls(new string[]
{
"http://*.11111",
"http://192.168.1.169:11111",
"http://<MYDOMAIN>:11111",
"http://0.0.0.0:11111",
"http://*:11111"
});
builder.Services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = null;
});
var app = builder.Build();
// Configure the HTTP request pipeline.
app.Urls.Add("http://*.11111");
app.MapControllers();
app.Run();
Имя «80» вообще не упоминается во всем приложении. Буду признателен за любую оказанную помощь.





Ваше приложение говорит
Переопределяющий адрес(а) «http://*.11111»
но это недействительный URL-адрес, поэтому используется порт по умолчанию. Вместо точки следует писать через двоеточие. Эта строка помогает мне:
builder.WebHost.UseUrls("http://*:11111");
Appsettings и app.Urls.Add не нужны.