Cuando se usa WebHostBuilder
en un Main
punto de entrada, ¿cómo puedo especificar el puerto al que se une?
Por defecto usa 5000.
Tenga en cuenta que esta pregunta es específica de la nueva API ASP.NET Core (actualmente en 1.0.0-RC2).
.net
asp.net-core
Drew Noakes
fuente
fuente
launchSettings.json
desde laProperties
carpeta. Puede cambiar el puerto en ellaunchUrl
.hosting.json
(ver la respuesta ), que se usaron por defecto en RC1 y uno solo necesita agregar.AddJsonFile("hosting.json", optional: true)
(ver aquí )hosting.json
o la línea de comando para configurar el enlace.Respuestas:
En ASP.NET Core 3.1, hay 4 formas principales de especificar un puerto personalizado:
--urls=[url]
:appsettings.json
, agregando unUrls
nodo:ASPNETCORE_URLS=http://localhost:5001/
.UseUrls()
, si prefieres hacerlo programáticamente:O, si todavía está utilizando el generador de host web en lugar del generador de host genérico:
fuente
UseUrls
es el enfoque recomendado por el equipo ASP.NET para escenarios de autohospedaje (el valor en sí no tiene que estar codificado, obviamente). Dicho esto, actualicé mi respuesta para mencionar cómo podría hacerlo utilizando el generador de configuración.hosting.json
. Lo único que hay que hacer es forzar la lectura de la información en RC2 (ver el anuncio ).using Microsoft.Extensions.Configuration.CommandLine;
Puede insertar la sección Kestrel en el archivo asp.net core 2.1+ appsettings.json.
fuente
dotnet publish
.Respuesta de seguimiento para ayudar a cualquiera que haga esto con la integración de VS Docker. Necesitaba cambiar al puerto 8080 para ejecutar usando el entorno "flexible" en google appengine.
Necesitará lo siguiente en su Dockerfile:
y también necesitarás modificar el puerto en docker-compose.yml:
fuente
La solución alternativa es usar a
hosting.json
en la raíz del proyecto.Y luego en
Program.cs
fuente
urls
Actualicé su respuesta con la propiedad correcta - gracias @ManishJainPuede especificar la URL de alojamiento sin ningún cambio en su aplicación.
Cree un
Properties/launchSettings.json
archivo en el directorio de su proyecto y complételo con algo como esto:dotnet run
El comando debe elegir sulaunchSettings.json
archivo y lo mostrará en la consola:Más detalles: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments
fuente
[ProjectRoot]/Properties/launchSettings.json
, pero lo hermoso es que funciona sin problemas.dotnet run
, necesita acceso al código fuente.Si usa
dotnet run
fuente
Por encima de .net core 2.2, el método Main support args with WebHost.CreateDefaultBuilder (args)
Puedes construir tu proyecto e ir a
bin
ejecutar comandos como esteo con múltiples URL
fuente
Cuando se aloja en contenedores de Docker (versión de Linux para mí), es posible que reciba un mensaje de "Conexión rechazada". En ese caso, puede usar la dirección IP 0.0.0.0 que significa "todas las direcciones IP en esta máquina" en lugar del bucle de retorno localhost para arreglar el reenvío de puertos.
fuente
Alternativamente, puede especificar el puerto ejecutando la aplicación a través de la línea de comandos.
Simplemente ejecute el comando:
Nota: Donde 5001 es el puerto en el que desea ejecutar.
fuente
En .Net Core 3.1 simplemente siga a Microsoft Doc que es bastante simple: kestrel-aspnetcore-3.1
Para resumir:
Agregue la siguiente sección ConfigureServices a CreateDefaultBuilder en
Program.cs
:Agregue la siguiente configuración básica al
appsettings.json
archivo (más opciones de configuración en el artículo de Microsoft):Abra CMD o la consola en la carpeta de binarios de publicación / depuración / publicación de su proyecto y ejecute:
Disfrute explorando su sitio / api en su http: // localhost: 5002
fuente
Vaya a properties / launchSettings.json y encuentre su nombre de aplicación y debajo de esto, encuentre applicationUrl. verá que está ejecutando localhost: 5000, cámbielo a lo que quiera. y luego ejecuta dotnet run ...... hurra
fuente
Solucioné el problema del puerto en Net core 3.1 usando lo siguiente
En el Program.cs
Puede acceder a la aplicación usando
fuente