Как изменить номер порта для основного приложения 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
, выполните следующие действия:
Откройте launchsettings.json
в разделе Свойства проекта API.
![enter image description here]()
Измените 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();
}