容器工具启动设置

在 ASP.NET Core 项目中的“属性”文件夹中,可以找到launchSettings.json该文件,其中包含用于控制 Web 应用在开发计算机上启动方式的设置。 有关如何在 ASP.NET 开发中使用此文件的详细信息,请参阅在 ASP.NET Core 中使用多个环境

可以直接编辑此文件,但在 Visual Studio IDE 中,还可以通过 UI 编辑此文件中的属性。 选择启动选项旁边的下拉列表(例如,Docker或),然后选择“调试属性.NET SDK”。

在“launchSettings.json”中,Docker 部分中的设置与 Visual Studio 处理容器化应用的方式相关 。

    "Docker": {
      "commandName": "Docker",
      "launchBrowser": true,
      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
      "DockerfileRunArguments": "-l mylabel=value",
      "environmentVariables": {
        "ASPNETCORE_URLS": "https://+:443;http://+:80",
        "ASPNETCORE_HTTPS_PORT": "44360"
      },
      "httpPort": 51803,
      "useSSL": true,
      "sslPort": 44360
    }

commandName 设置确定此部分是否适用于容器工具。

无论使用的是 Dockerfile,还是使用 .NET SDK 的内置容器生成支持(适用于 .NET 7 及更高版本),大多数设置 launchSettings.json 都可用且适用。

下表显示了可在此部分中设置的属性:

设置名 示例 描述
commandLineArgs "commandLineArgs": "--mysetting myvalue" 在容器中启动项目时使用这些命令行参数来启动应用。
DockerfileRunArguments "dockerfileRunArguments": "-l mylabel=value" 要传递给 docker run 命令的其他参数。
environmentVariables "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80"``, <br/> "ASPNETCORE_HTTPS_PORT": "44381"``
}
当进程在容器中启动时,这些环境变量值将传递给进程。
httpPort "httpPort": 24051 启动容器时,主机上的此端口映射到容器的端口 80。
launchBrowser "launchBrowser": true 指示在成功启动项目后是否启动浏览器。
launchBrowserTimeout "launchBrowserTimeout": 1 在启动浏览器之前等待应用准备就绪的最长时间(以秒为单位)。
launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" 启动浏览器时使用该 URL。 此字符串支持的替换令牌为:

- {Scheme}- 替换为任一或httphttps取决于是否使用 SSL。

- {ServiceHost} - 通常替换为 localhost
但是,面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为容器的 IP。

- {ServicePort} - 通常替换为 sslPorthttpPort,具体取决于是否使用 SSL。
但是,在面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为 44380,具体取决于是否使用 SSL。
sslPort "sslPort": 44381 启动容器时,主机上的此端口映射到容器的端口 443。
useSSL "useSSL": true 指示在启动项目时是否使用 SSL。 如果未指定 useSSL,则会在 sslPort > 0 时使用 SSL。

注意

如果在项目文件和启动设置文件中都找到相同的设置(例如 DockerfileRunArguments),则启动设置文件中的值优先。

设置名 示例 描述
commandLineArgs "commandLineArgs": "--mysetting myvalue" 在容器中启动项目时使用这些命令行参数来启动应用。
containerRunArguments "containerRunArguments": "-l mylabel=value" 类似于 dockerfileRunArguments,但用于 .NET SDK 容器生成类型。
DockerfileRunArguments dockerfileRunArguments": "-l mylabel=value" 要传递给 docker run 命令的其他参数。
/
此设置仅适用于使用 Dockerfile 容器生成类型的项目。

在 Visual Studio 17.3 及更高版本中,可以使用新增的以下替换令牌:

- {ProjectDir} - 项目目录的完整路径。

- {OutDir} - MSBuild 属性 OutDir 的值。
environmentVariables "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44381"
}
当进程在容器中启动时,这些环境变量值将传递给进程。
httpPort "httpPort": 24051 启动容器时,主机上的此端口映射到容器的端口 80。
launchBrowser "launchBrowser": true 指示在成功启动项目后是否启动浏览器。
launchBrowserTimeout "launchBrowserTimeout": 1 在启动浏览器之前等待应用准备就绪的最长时间(以秒为单位)。
launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" 启动浏览器时使用该 URL。 此字符串支持的替换令牌为:

- {Scheme} - 根据是否使用 SSL,替换为任一 httphttps两者。

- {ServiceHost} - 通常替换为 localhost
但是,面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为容器的 IP。

- {ServicePort} - 通常替换为 sslPort 或 httpPort,具体取决于是否使用 SSL。
但是,在面向使用 Windows 10 RS3 或更低版本的 Windows 容器时,它将替换为 44380,具体取决于是否使用 SSL。
publishAllPorts "publishAllPorts": true 如果此项为 true,则将 -P 传递给 docker run,这会将所有公开的端口都发布到一个随机端口。 请参阅 Docker 文档。 但是,指定 sslPort 时,Visual Studio 仍会传递 -p 5002:443,因此服务仍应侦听端口 5002。
sslPort "sslPort": 44381 启动容器时,主机上的此端口映射到容器的端口 443。
useSSL "useSSL": true 指示在启动项目时是否使用 SSL。 如果未指定 useSSL,则会在 sslPort > 0 时使用 SSL。

注意

如果在项目文件和启动设置文件中都找到相同的设置(例如 DockerfileRunArguments),则启动设置文件中的值优先。

后续步骤

通过设置容器工具生成属性来配置项目。

请参阅