我已经编辑了 launchSettings.JSON 文件并更改了端口。
"Gdb.Blopp": {
"commandName": "Project",
"launchBrowser": false,
"launchUrl": "http://localhost:4000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
但它仍然从端口5000开始。这个设置是否被忽视了,还是我错过了其他什么?
答案 0 :(得分:5)
当您点击F5 / Ctr + F5时,IDE(即Visual Studio)应该使用launchSettings.json
,并从开始按钮旁边的下拉菜单中提供选项。
此外,您不应直接编辑launcherSettings.json
文件,而是使用“项目属性”来更改内容。
这样做的一个原因是,如果您通过项目属性更改它,Visual Studio还将编辑IIS Express文件(位于解决方案的.vs/config/applicationhost.config
文件夹中)。
如果您想更改使用的端口红隼,请在.UseUrls("http://0.0.0.0:4000")
中使用appsettings.json
(从hosting.json
或Program.cs
获取)。
如果你不想使用硬编码,你也可以这样做
创建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时,茶隼端口将由UseIISIntegration()
确定。
答案 1 :(得分:2)
从.NET Core 2.0开始,您不必再维护hosting.json
或修改应用启动了。内置支持设置应用程序端口,在此处说明:https://stackoverflow.com/a/49000939/606007