Это не одно и то же. .Replace
- это .NET-метод либо на System.String, либо на любой другой тип с методом экземпляра с именем Replace
. -replace
- это оператор PowerShell, который использует регулярные выражения. Запустите man about_operators
, чтобы получить дополнительную информацию об операторе -replace
.
Предполагается, что launchSettings.json
используется IDE (например, Visual Studio), когда вы нажмете F5 / Ctr + F5 и предложите варианты из раскрывающегося меню рядом с кнопкой запуска.
Также вы не должны напрямую редактировать этот файл launcherSettings.json
и вместо этого использовать Свойства проекта для изменения материала.
Одна из причин этого заключается в том, что если вы измените ее с помощью свойств проекта, Visual Studio также отредактирует файлы IIS Express (расположенные в папке .vs/config/applicationhost.config
вашего решения).
Если вы хотите изменить использование кешлеров порта, используйте .UseUrls("http://0.0.0.0:4000")
(получите его либо из appsettings.json
, либо hosting.json
) в Program.cs
.
Если вы не хотите использовать hardcoded, вы также можете сделать что-то вроде этого
Создать hosting.json
:
{
"server": "Microsoft.AspNetCore.Server.Kestrel",
"server.urls": "http://localhost:4000"
}
Program.cs
public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddJsonFile("hosting.json", optional: false)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();
var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
Вы также можете сделать это через командную строку (AddCommandLine
вызов здесь очень важен, из пакета Microsoft.Extensions.Configuration.CommandLine"
).
var config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
Затем запустите его через dotnet run server.urls=http://0.0.0.0:4000
.
Когда вы запустите IIS / IISExpress, порт kestrel будет определен UseIISIntegration()
.
Начиная с .NET Core 2.0 вам больше не нужно поддерживать hosting.json
или изменять запуск приложения. Существует встроенная поддержка настройки порта приложения, описанная здесь: https://stackoverflow.com/a/49000939/606007
using
, в моем случае мне пришлось включитьusing Microsoft.Extensions.Configuration;
для работыConfigurationBuilder
. В VS легко, он просто скажет вам, что вы его упустили, но в VSCode я не вижу, что предоставленная помощь (если только мой плагин C # не настроен правильно) – ghiscoding 23 May 2017 в 20:45