在 Linux 上更改主机名和端口托管 .net 核心 DLL

Changing hostname and port hosting .net core DLL on Linux

我正在尝试在 CentOS Linux VM 上托管我的第一个服务。

我的 launchSettings.json 看起来像这样:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:64707",
      "sslPort": 44323
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api/test/get",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Release"
      }
    },
    "TestService": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/test/get",
      "applicationUrl": "https://centos-vm:1234",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Release"
      }
    }
  }
}`

记下主机名和端口。

我使用以下设置发布服务:

然后我 FTP 将发布的文件发布到我的 VM,并以此启动服务:

dotnet mytestservice.dll

服务启动 运行,并展开所有 DLL。但是,我的问题出现在这个提示中:

Now listening on: http://localhost:5000

如何指定主机名和端口,并将连接更改为安全 (https)?

在 Program.cs 中您有方法 CreateHostBuilder,您需要调整此方法。默认情况下它看起来像这样:

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                    webBuilder.UseKestrel();
                    webBuilder.UseIISIntegration();
                });

在这里您可以自定义虚拟主机。在您的情况下,要更改使用的 URL,您可以使用 webBuilder.UseUrls("Url 1", "Url 2"...)