viewcomponent tag route net asp .net asp.net-core

tag - ¿Cómo especificar el puerto en el que está alojada una aplicación ASP.NET Core?



tag helpers asp net core (9)

Alternativamente, puede especificar el puerto ejecutando la aplicación a través de la línea de comando.

Simplemente ejecute el comando:

dotnet run --server.urls http://localhost:5001

Nota: Donde 5001 es el puerto en el que desea ejecutar.

Al usar WebHostBuilder en un punto de entrada Main , ¿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).


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.

public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .UseUrls("http://0.0.0.0:5000/") .Build(); host.Run(); } }


La solución alternativa es usar un hosting.json en la raíz del proyecto.

{ "urls": "http://localhost:60000" }

Y luego en Program.cs

public static void Main(string[] args) { var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("hosting.json", true) .Build(); var host = new WebHostBuilder() .UseKestrel(options => options.AddServerHeader = false) .UseConfiguration(config) .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); }


Por encima de .net core 2.2, el método Main support args with WebHost.CreateDefaultBuilder (args)

public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); }

Puede construir su proyecto e ir al comando bin run como este

dotnet <yours>.dll --urls=http://localhost:5001

o con múltiples URL

dotnet <yours>.dll --urls="http://localhost:5001,https://localhost:5002"


Puede especificar la URL de alojamiento sin ningún cambio en su aplicación.

Cree un archivo Properties/launchSettings.json en el directorio de su proyecto y Properties/launchSettings.json con algo como esto:

{ "profiles": { "MyApp1-Dev": { "commandName": "Project", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, "applicationUrl": "http://localhost:5001/" } } }

dotnet run comando launchSettings.json dotnet run debe elegir su archivo launchSettings.json y lo mostrará en la consola:

C:/ProjectPath [master ≡] λ dotnet run Using launch settings from C:/ProjectPath/Properties/launchSettings.json... Hosting environment: Development Content root path: C:/ProjectPath Now listening on: http://localhost:5001 Application started. Press Ctrl+C to shut down.

Más detalles: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments


Puede insertar la sección Kestrel en el archivo asp.net core 2.1+ appsettings.json.

"Kestrel": { "EndPoints": { "Http": { "Url": "http://0.0.0.0:5002" } } },


Puede usar UseUrls para eso:

public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .UseUrls("http://localhost:5001/") .Build(); host.Run(); } }

Alternativamente, puede configurar la dirección del servidor utilizando la pila de configuración. A continuación, le mostramos cómo puede usar los argumentos de la línea de comandos para hacer fluir la dirección que desea:

public class Program { public static void Main(string[] args) { var configuration = new ConfigurationBuilder() .AddCommandLine(args) .Build(); var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseConfiguration(configuration) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); } } dotnet run --urls=http://localhost:5001/


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:

ENV ASPNETCORE_URLS=http://+:8080 EXPOSE 8080

y también necesitarás modificar el puerto en docker-compose.yml:

ports: - "8080"


Vaya a properties / launchSettings.json y busque 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