Как изменить номер порта для основного приложения Asp.Net?

Я добавил следующий раздел в project.json.

  "commands": {
    "run": "run server.urls=http://localhost:8082",
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:8082",
    "weblistener": "Microsoft.AspNet.Hosting --server WebListener --server.urls http://localhost:8082"
  },

Тем не менее, он все еще показывает "Теперь слушаем: http://localhost:5000" при запуске с помощью dotnet myapp.dll?

BTW, смогут ли клиенты с другого компьютера получить доступ к сервису?

Ответ 1

Да, это будет доступно другим машинам, если вы привяжетесь к любому внешнему IP-адресу. Например, привязка к http://*:80. Обратите внимание, что привязка к http://localhost:80 будет привязываться только к интерфейсу 127.0.0.1 и, следовательно, не будет доступна для других машин.

Visual Studio переопределяет ваш порт. Вы можете изменить VS-порт, отредактировав этот файл Properties\launchSettings.json, или же установить его по коду:

        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .UseUrls("http://*:80") // <-----
            .Build();

        host.Run();

Пошаговое руководство, использующее внешний файл конфигурации, доступно здесь.

Ответ 2

В Asp.net core 2.0 WebApp, если вы используете визуальную студию, найдите LaunchSettings.json. Я добавляю свой LaunchSettings.json, вы можете изменить номер порта, как вы можете видеть.

enter image description here

Ответ 3

В Visual Studio 2017 мы можем изменить номер порта из LaunchSetting.json

В Properties-> LaunchSettings.json.

Откройте LaunchSettings.json и измените номер порта.

Launch

Изменить номер порта в файле JSON

enter image description here

Ответ 4

Используйте следующую строку кода .UseUrls("http://*:80") в Program.cs

Таким образом меняется .UseStartup<Startup>()

в

.UseStartup<Startup>().UseUrls("http://*:80")

Ответ 5

Мы можем использовать эту команду для запуска нашего хост-проекта через Windows Powershell без IIS и visual studio на отдельном порту. По умолчанию веб-сервер krestel - 5001

$env:ASPNETCORE_URLS="http://localhost:22742" ; dotnet run

Ответ 6

Перейдите в свой файл program.cs и добавьте метод UseUrs, чтобы установить свой URL, убедитесь, что вы не используете зарезервированный URL или порт

 public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()

                // params string[] urls
                .UseUrls(urls: "http://localhost:10000")

                .Build();
    }

Ответ 7

Все остальные ответы учитываются только для URL http. Если URL-адрес https, выполните следующие действия:

  1. Откройте launchsettings.json в разделе Свойства проекта API.

    enter image description here

  2. Измените sslPort в iisSettings -> iisExpress

Образец launchsettings.json будет выглядеть следующим образом

{
  "iisSettings": {
    "iisExpress": {
      "applicationUrl": "http://localhost:12345",
      "sslPort": 98765 <== Change_This
    }
  },

Ответ 8

вы также можете использовать код

        IConfiguration config  = new ConfigurationBuilder()
        .AddCommandLine(args)
        .Build(); 
        var host = new WebHostBuilder()
         .UseConfiguration(config)
         .UseKestrel()
         .UseContentRoot(Directory.GetCurrentDirectory()) 
         .UseStartup<Startup>()
         .Build();

и настройте приложение по командной строке: dotnet run --server.urls http://*: 5555

Ответ 9

Это работает для меня.

Я использую Asp.net core 2.2 (этот способ поддерживается в asp.net core 2.1 и более поздней версии).

добавить раздел Kestrel в файл appsettings.json. как это:

{
  "Kestrel": {
    "EndPoints": {
      "Http": {
        "Url": "http://localhost:4300"
      }
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

и в Startup.cs:

public Startup(IConfiguration configuration, IHostingEnvironment env)
{
      var builder = new ConfigurationBuilder()
         .SetBasePath(env.ContentRootPath)
         .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
         .AddEnvironmentVariables();

      Configuration = builder.Build();
}