Condividi tramite


Impostazioni di avvio di Strumenti contenitore

Nella cartella Proprietà di un progetto ASP.NET Core è possibile trovare il launchSettings.json file contenente le impostazioni che controllano il modo in cui l'app Web viene avviata nel computer di sviluppo. Per informazioni dettagliate sull'uso di questo file nello sviluppo ASP.NET, vedere Usare più ambienti in ASP.NET Core.

È possibile modificare direttamente questo file, ma nell'IDE di Visual Studio è anche possibile modificare le proprietà in questo file tramite l'interfaccia utente. Scegliere l'elenco a discesa accanto all'opzione di avvio (ad esempio, Docker o .NET SDK) e quindi scegliere Proprietà di debug per un progetto a contenitore singolo.

Screenshot della finestra di dialogo del profilo di avvio, che mostra le impostazioni di avvio per un profilo di avvio del contenitore.

Per Docker Compose scegliere Gestisci impostazioni di avvio di Docker Compose e vedere Avviare un subset di servizi compose.

In launchSettings.json le impostazioni nella sezione Docker sono correlate al modo in cui Visual Studio gestisce le app in contenitori.

    "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
    }

L'impostazione commandName identifica che questa sezione si applica a Strumenti contenitore.

La maggior parte delle impostazioni in launchSettings.json è disponibile e applicabile se si usa un Dockerfile o si usa il supporto predefinito per la compilazione di contenitori di .NET SDK (disponibile per .NET 7 e versioni successive).

La tabella seguente illustra le proprietà che è possibile impostare in questa sezione:

Nome impostazione Esempio Descrizione
commandLineArgs "commandLineArgs": "--mysetting myvalue" Questi argomenti della riga di comando per l'avvio dell'app vengono usati durante l'avvio del progetto nel contenitore.
DockerfileRunArguments "dockerfileRunArguments": "-l mylabel=value" Argomenti aggiuntivi da passare al docker run comando.
environmentVariables "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80"``, <br/> "ASPNETCORE_HTTPS_PORT": "44381"''
}
Questi valori delle variabili di ambiente vengono passati al processo quando viene avviato nel contenitore.
httpPort "httpPort": 24051 Questa porta nell'host viene mappata alla porta 80 del contenitore all'avvio del contenitore.
launchBrowser "launchBrowser": true Indica se avviare il browser dopo l'avvio corretto del progetto.
launchBrowserTimeout "launchBrowserTimeout": 1 Quantità massima di tempo (in secondi) di attesa prima dell'avvio del browser da parte dell'app.
launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Questo URL viene usato durante l'avvio del browser. I token di sostituzione supportati per questa stringa sono:

- {Scheme} - Sostituito con http o https a seconda che venga usato SSL.

- {ServiceHost} - In genere sostituito con localhost.
Quando si usano contenitori Windows in Windows 10 RS3 o versioni precedenti, tuttavia, viene sostituito con l'INDIRIZZO IP del contenitore.

- {ServicePort} - In genere sostituito con sslPort o httpPort, a seconda che venga usato SSL.
Quando hai come destinazione contenitori Windows in Windows 10 RS3 o versioni precedenti, tuttavia, viene sostituito con 443 o 80, a seconda che venga usato SSL.
sslPort "sslPort": 44381 Questa porta nell'host viene mappata alla porta 443 del contenitore quando si avvia il contenitore.
useSSL "useSSL": true Indica se usare SSL durante l'avvio del progetto. Se useSSL non viene specificato, ssl viene usato quando sslPort > 0.

Nota

Se le stesse impostazioni, ad esempio , DockerfileRunArgumentsvengono trovate sia nel file di progetto che nel file delle impostazioni di avvio, il valore nel file delle impostazioni di avvio ha la precedenza.

Proprietà nell'interfaccia utente del profilo di debug Nome dell'impostazione in launchSettings.json Esempio Descrizione
Command line arguments commandLineArgs "commandLineArgs": "--mysetting myvalue" Questi argomenti della riga di comando per l'avvio dell'app vengono usati durante l'avvio del progetto nel contenitore.
Argomenti di esecuzione del contenitore containerRunArguments
ContainerRunArguments
"containerRunArguments": "-l mylabel=value" Argomenti aggiuntivi da passare al docker run comando.

Usare la versione minuscola in Visual Studio 17.12 e versioni successive. La versione maiuscola è stata introdotta in Visual Studio 17.9 e viene fornita per la compatibilità con le versioni precedenti.

È possibile usare i token di sostituzione seguenti:

- {ProjectDir} - Percorso completo della directory del progetto.

- {OutDir} - Valore della proprietà MSBuild OutDir.
N/D DockerfileRunArguments dockerfileRunArguments": "-l mylabel=value" Come containerRunArguments, ma solo per i progetti che usano il tipo di compilazione Dockerfile. Per Visual Studio 17.12 e versioni successive, è consigliabile usare containerRunArguments invece .
Variabili di ambiente environmentVariables "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44381"
}
Questi valori delle variabili di ambiente vengono passati al processo quando viene avviato nel contenitore.
Nome contenitore containerName mycontainer (17.12 e versioni successive) Nome del contenitore corrispondente all'espressione [a-zA-Z0-9][a-zA-Z0-9_.-]regolare .
File di ambiente contenitore containerRunEnvironmentFiles "containerRunEnvironmentFiles": "abc.env;xyz.env" (17.12 e versioni successive) Elenco di file di variabili di ambiente (.env file) separati da punti e virgola. Vedere sintassi del file con estensione env.
Porta HTTP httpPort "httpPort": 24051 Questa porta nell'host viene mappata alla porta 80 del contenitore all'avvio del contenitore.
Avviare il browser launchBrowser "launchBrowser": true Indica se avviare il browser dopo l'avvio corretto del progetto.
N/D launchBrowserTimeout "launchBrowserTimeout": 1 Quantità massima di tempo (in secondi) di attesa prima che l'app sia pronta prima di avviare il browser (solo Docker Compose).
Url launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Questo URL viene usato durante l'avvio del browser. I token di sostituzione supportati per questa stringa sono:

- {Scheme} - Sostituito con http o https, a seconda che venga usato SSL.

- {ServiceHost} - In genere sostituito con localhost.
Quando si usano contenitori Windows in Windows 10 RS3 o versioni precedenti, tuttavia, viene sostituito con l'INDIRIZZO IP del contenitore.

- {ServicePort} - In genere sostituito con sslPort o httpPort, a seconda che venga usato SSL.
Quando hai come destinazione contenitori Windows in Windows 10 RS3 o versioni precedenti, tuttavia, viene sostituito con 443 o 80, a seconda che venga usato SSL.
Pubblicare tutte le porte publishAllPorts "publishAllPorts": true Se true, passare -P a docker run, che pubblica tutte le porte esposte in una porta casuale. Vedere la documentazione di Docker. Tuttavia, quando si specifica sslPort, Visual Studio passa -p 5002:443ancora , quindi il servizio deve comunque essere in ascolto sulla porta 5002.
Porta SSL sslPort "sslPort": 44381 Questa porta nell'host viene mappata alla porta 443 del contenitore quando si avvia il contenitore.
N/D useSSL "useSSL": true Indica se usare SSL durante l'avvio del progetto. Se useSSL non viene specificato, ssl viene usato quando sslPort > 0.

Non tutte le impostazioni sono disponibili nell'interfaccia utente, useSSLad esempio . Per modificare queste impostazioni, modificare launchSettings.json direttamente.

L'impostazione DockerfileRunArguments viene sostituita in Visual Studio 2022 17.12 e versioni successive da containerRunArguments, che può essere impostata nell'interfaccia utente dei profili di avvio come Container run arguments.

Nota

Se la stessa impostazione viene trovata sia nel file di progetto che nel file delle impostazioni di avvio, il valore nel file delle impostazioni di avvio ha la precedenza.

Passaggi successivi

Configurare il progetto impostando le proprietà di compilazione di Strumenti contenitore.

Vedi anche