.NET Core 2.2中有两个应用程序。我需要在Centos7上同时托管这两者。其中一个可以在端口5000上正常工作。我正在尝试第二次运行,并且将端口5000更改为另一个存在问题。在Program.cs中,我更改了:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://localhost:5200")
.UseKestrel()
.UseStartup<Startup>();
但是它不起作用。 我通过服务运行应用程序。它是我的配置
[Unit]
Description=ASP.Net Project
[Service]
WorkingDirectory=/home/piotrekb3/etc/slotsapi
ExecStart=/usr/bin/dotnet /home/piotrekb3/etc/slotsapi/Slots.WebApi.dll
Restart=always
RestartSec=10
SyslogIdentifier=SlotsApi
User=piotrekb3
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
我通过命令运行:
systemctl start slotsapi.service
我尝试过在lanuchSettings.json中进行更改:
"Slots.WebApi": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"applicationUrl": "https://localhost:5003;http://localhost:5004",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
但是什么都没有。 知道我该如何解决我的问题吗?
答案 0 :(得分:0)
您的第一种方法是正确的,但是您可以将端口添加到配置文件中。如果要在NGINX后面部署它,则需要同时指定HTTP和HTTPS。
这是我的代码:
public class Program
{
private static IConfiguration configuration;
public static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false);
configuration = builder.Build();
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureKestrel((context, options) =>
{
// Set properties and call methods on options
})
.UseKestrel()
.UseUrls($"http://localhost:{configuration["Port"]};https://localhost:{Convert.ToInt32(configuration["Port"])+1}")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>();
}
此网站由Kestrel使用以下方法托管: https://www.multilabs.org
别忘了向您的appsettings.json添加配置:“端口”:5200