gpt4 book ai didi

json - 无法在 launchSettings.JSON 中为 Net.Core 应用程序设置端口

转载 作者:行者123 更新时间:2023-12-04 22:57:03 25 4
gpt4 key购买 nike

我已经编辑了 launchSettings.JSON 文件并像这样更改了端口。

"Gdb.Blopp": {
"commandName": "Project",
"launchBrowser": false,
"launchUrl": "http://localhost:4000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}

不过,它仍然在端口 5000 上启动。该设置是否完全被忽视了,还是我错过了其他东西?

最佳答案

launchSettings.json 应该由 IDE(即 Visual Studio)使用,当您按 F5/Ctr+F5 并从开始按钮旁边的下拉菜单中提供选项时。

enter image description here

此外,您不应该直接编辑 launcherSettings.json 文件,而是使用项目属性来更改内容。

原因之一是,如果您通过项目属性更改它,Visual Studio 还将编辑 IIS Express 文件(位于解决方案的 .vs/config/applicationhost.config 文件夹中)。

如果要更改 kestrel 使用的端口,请在 .UseUrls("http://0.0.0.0:4000") 中使用 appsettings.json(从 hosting.jsonProgram.cs 获取)。

如果你不想使用硬编码,你也可以这样做

创建一个 hosting.json :

{
"server": "Microsoft.AspNetCore.Server.Kestrel",
"server.urls": "http://localhost:4000"
}

程序.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() 确定。

关于json - 无法在 launchSettings.JSON 中为 Net.Core 应用程序设置端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40550798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com