ASP.NET CORE

Archivo launchSettings.json en ASP.NET Core

11 de enero, 2024

El archivo launchSettings.json contiene la configuración que permite a Visual Studio o la CLI de .NET, conocer cómo se va a comportar la aplicación al momento de ejecutarse en el entorno local de desarrollo.

Sus principales características son:

Partes del Archivo launchSettings.json Subir

El archivo launchSettings.json esta formado por 2 grupos de objetos o definiciones:

iisSettings

Propiedad Tipo Valor Predeterminado Descripción
windowsAuthentication boolean false Habilita la autenticación Windows del el sitio en los servidores web IIS e IIS Express.
anonymousAuthentication boolean true Habilita la autenticación anónima del sitio en los servidores web IIS e IIS Express.
iisExpress objeto - Establece la configuración del sitio cuando se usa el perfil IIS Express.
iis objeto - Establece la configuración del sitio cuando se usa el perfil IIS.

iisExpress / iis

Propiedad Tipo Valor Predeterminado Formato Restricciones Descripción
applicationUrl string Vacío URI - URL del sitio web.
sslPort integer 0 - Entre 0 y 65535 Puerto SSL del sitio web.

profiles

Define la lista de perfiles de depuración. Las propiedades básicas y que son configuradas de forma predeterminada al momento de crear el proyecto son:

Propiedad Tipo Valor Predeterminado Valores Permitidos Descripción
commandName string Vacío IISExpress,
IIS,
Project,
Executable, DebugRoslynComponent, Docker,
DockerCompose, MsixPackage, WSL2
Identifica el destino de depuración a ejecutar.
dotnetRunMessages boolean true - Establece si se muestran mensajes cuando el proyecto se esté ejecutando.
launchBrowser boolean false - Define si se inicia el navegador web al momento de ejecutar la aplicación.
applicationUrl string - - URL relativa inicial del navegador web.
environmentVariables object - - Establece las variables de entorno como pares clave/valor.

Existen tambien propiedades adicionales:

Propiedad Tipo Valor Predeterminado Valores Permitidos Descripción
commandLineArgs string Vacío - Argumentos a pasar al objetivo que se está ejecutando.
executablePath string Vacío - Ruta absoluta o relativa del ejecutable.
workingDirectory string - - Establece el directorio de trabajo del comando.
launchUrl string - - URL relativa inicial del navegador web.
nativeDebugging boolean false - Habilitar la depuración de código nativo.
externalUrlConfiguration boolean false - Habilita la configuración del sitio cuando se ejecuta el perfil del proyecto ASP.NET Core.
use64Bit boolean true - Establece si se ejecuta la versión de 64 bits de IIS Express, y caso contrario la versión x86.
ancmHostingModel - - InProcess, OutOfProcess Especifica el modelo de alojamiento que se utilizará al ejecutar proyectos principales de ASP.NET en IIS e IIS Express.
sqlDebugging boolean false - Habilita la depuración de scripts SQL y procedimientos almacenados.
jsWebView2Debugging boolean false - Habilita el depurador de JavaScript para WebView2 basado en Microsoft Edge (Chromium).
leaveRunningOnClose boolean false - Permite que IIS siga ejecutándose cuando se cierre el proyecto.
remoteDebugEnabled boolean false - Establece si el depurador se conecta a un proceso en una computadora remota.
remoteDebugMachine string - - El nombre y número de puerto de la máquina remota en formato nombre:puerto.
authenticationMode boolean None None, Windows Especifica el esquema de autenticación que se utilizará al conectarse a la computadora remota.
hotReloadEnabled boolean true - Permite realizar cambios al código de la aplicación en tiempo ejecución.
publishAllPorts boolean true - Publique todos los puertos expuestos en puertos aleatorios en Docker (-P).
useSSL boolean true - Habilita el uso de puerto SSL.
sslPort integer 0 Entre 0 y 65535 El puerto SSL que el sitio web utilizará.
httpPort integer 0 Entre 0 y 65535 El puerto HTTP que el sitio web utilizará.
inspectUri string (1) - La dirección URL que habilitará la depuración en una aplicación Blazor WebAssembly.
targetProject string Vacío - Ruta relativa o absoluta al archivo de proyecto .NET en el que se debe ejecutar el componente Roslyn.

(1) El valor predeterminado de inspectUri es {wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}

Archivo launchSettings.json de Ejemplo Subir

El archivo launchSettings.json siguiente, es un archivo básico y común que se genera de forma predeterminada al momento de crear un proyecto ASP.NET Core.


{
   "$schema": "http://json.schemastore.org/launchsettings.json",
   "iisSettings": {
      "windowsAuthentication": false,
      "anonymousAuthentication": true,
      "iisExpress": {
         "applicationUrl": "http://localhost:55697",
         "sslPort": 44318
      }
   },
   "profiles": {
      "http": {
         "commandName": "Project",
         "dotnetRunMessages": true,
         "launchBrowser": true,
         "applicationUrl": "http://localhost:5084",
         "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
         }
      },
      "https": {
         "commandName": "Project",
         "dotnetRunMessages": true,
         "launchBrowser": true,
         "applicationUrl": "https://localhost:5634;http://localhost:5084",
         "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
         }
      },
      "IIS Express": {
         "commandName": "IISExpress",
         "launchBrowser": true,
         "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
         }
      },
      "https-Production": {
         "commandName": "Project",
         "dotnetRunMessages": true,
         "launchBrowser": true,
         "applicationUrl": "https://localhost:5634;http://localhost:5084",
         "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Production",
            "ASPNETCORE_DETAILEDERRORS": "1",
            "ASPNETCORE_SHUTDOWNTIMEOUTSECONDS": "3"
         }
      }
   }
}
        

Hay varios puntos clave a recalcar:

launchSettings.json Visual Studio y la CLI de .NET Subir

Para elegir el perfil de depuración en Visual Studio 2022, hay que dirigirse a la barra de herramientas Standard, menú desplegable a lado del botón Depurar, tal como se puede observar en la siguiente imagen:

Elegir perfiles de lanzamiento en Visual Studio 2022

Esta acción de Visual Studio equivale al siguiente comando de la CLI de .NET:

dotnet run --launch-profile https-Production

Si no se especifica un perfil, la CLI de .NET utilizará el primero que se encuentre en el archivo launchSettings.json.

dotnet run

Si no desea utilizar ningún perfil, se puede ignorar explícitamente mediante el parámetro --no-launch-profile.

dotnet run --no-launch-profile

Cabe recalcar que la CLI de .NET solo soporta los perfiles con tipos de comando que ejecuten el servidor web Kestrel. Por lo que ejecutar el siguiente comando:

dotnet run --launch-profile "IIS Express"

Tendrá como resultado el siguiente error:

The launch profile "IIS Express" could not be applied.
The launch profile type 'IISExpress' is not supported.

De igual forma el siguiente comando:

dotnet run --launch-profile "IIS"

Tendrá como resultado el siguiente error:

The launch profile "IIS" could not be applied.
The launch profile type 'IIS' is not supported.

Editar el Archivo launchSettings.json Visualmente desde Visual Studio 2022

Visual Studio permite editar el archivo launchSettings.json de forma gráfica de dos formas.

La primera:

  1. Seleccionar el proyecto ASP.NET Core.
  2. Presionar el clic derecho y elegir la opción Propiedades, o presionar la combinación de teclas Alt+Enter.
  3. Elegir la pestaña Debug.
  4. Presionar el enlace Open debug launch profiles UI.
Editar el archivo launchSettings.json en Visual Studio 2022

La segunda y la más fácil de acceder es mediante el mismo menú que permite elegir los perfiles de lanzamiento o depuración, y elegir la opción <Nombre del Proyecto> Debug Properties.

Editar el archivo launchSettings.json en Visual Studio 2022

La ventana de Launch Profiles o Perfiles de Lanzamiento se abrirá, y se mostrarán todos los perfiles configurados, pudiendo así editarlos.

Ventana Launch Profiles

Referencias