Cuando se usa WebHostBuilderen un Mainpunto 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.jsondesde laPropertiescarpeta. 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.jsono 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 unUrlsnodo: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
UseUrlses 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.jsonen la raíz del proyecto.Y luego en
Program.csfuente
urlsActualicé 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.jsonarchivo en el directorio de su proyecto y complételo con algo como esto:dotnet runEl comando debe elegir sulaunchSettings.jsonarchivo 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 runfuente
Por encima de .net core 2.2, el método Main support args with WebHost.CreateDefaultBuilder (args)
Puedes construir tu proyecto e ir a
binejecutar 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.jsonarchivo (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