Ядро ASP.NET: как изменить порт IIS Express? [Дубликат]

Это не одно и то же. .Replace - это .NET-метод либо на System.String, либо на любой другой тип с методом экземпляра с именем Replace. -replace - это оператор PowerShell, который использует регулярные выражения. Запустите man about_operators, чтобы получить дополнительную информацию об операторе -replace.

0
задан Konrad Viltersten 11 November 2016 в 16:08
поделиться

3 ответа

Предполагается, что 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().

4
ответ дан Tseng 15 August 2018 в 14:52
поделиться
  • 1
    Вы имеете в виду , если или не должны изменить файл launcherSettings.json вручную? Я подозреваю, что вы имеете в виду not , чтобы изменить его и что это опечатка в вашем ответе. Пожалуйста, порекомендуйте. – Konrad Viltersten 12 November 2016 в 00:01
  • 2
    @ KonradViltersten: Да, извините. Починил это – Tseng 12 November 2016 в 01:39
  • 3
    просто чтобы помочь другим, лучше было бы добавить требуемый using, в моем случае мне пришлось включить using Microsoft.Extensions.Configuration; для работы ConfigurationBuilder. В VS легко, он просто скажет вам, что вы его упустили, но в VSCode я не вижу, что предоставленная помощь (если только мой плагин C # не настроен правильно) – ghiscoding 23 May 2017 в 20:45
0
ответ дан Alex 5 September 2018 в 13:59
поделиться

Начиная с .NET Core 2.0 вам больше не нужно поддерживать hosting.json или изменять запуск приложения. Существует встроенная поддержка настройки порта приложения, описанная здесь: https://stackoverflow.com/a/49000939/606007

0
ответ дан Random 15 August 2018 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: