我们正在 Linux(Ubuntu 18.04 LTS 和 Apache2)上部署我们的第一个 .NET Core 应用程序。
我们不知道部署它们的服务器的证书,也不知道它们将部署的端口,因为它们是客户端的,我们没有访问权限,所以我们需要能够通过 appsettings 中的配置输入它们(红隼配置)。
在 Windows 中,api 在 http 和 https 中都可以正常工作,将此配置放入appsettings.json并在Startup.cs 中读取它,如下所示:
// kestrel configuration
services.Configure<KestrelServerOptions>(Configuration.GetSection("Kestrel"));
Run Code Online (Sandbox Code Playgroud)
我们的windows配置appsettings.json是:
"AllowedHosts": "*.mydomain.es;*.mydomain-eu.com;test-win;test-linux;localhost;127.0.0.1;*.myActiveDirectoryDomain.ad",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5009"
}
,"Https": {
"Url": "https://localhost:5010"
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用相同配置部署在 Linux 上时,Kestrel 服务不会启动。红隼服务错误:
须藤 systemctl 状态 kestrel-apieu.service ?kestrel-apieu.service - 在 Ubuntu 18.04 上运行的示例 ASP .NET Api 加载:加载(/etc/systemd/system/kestrel-apieu.service;启用;供应商预设:启用)活动:激活(自动重启)(结果: core-dump ) 自 2020-02-06 星期四 …