之前用控制台程序改造了一个ASP.NET API站点,开发环境启动的默认端口号是5000,这与其它的站点冲突了。但这个站点没有默认的launchSettings.json文件,怎么办?于是查询了官网,有如下几种修改默认端口号的方式
1 、拷贝其它站点的launchSettings.json文件及它的文件夹到该站点修改。
launchSettings.json文件是ASP.NET Core项目中使用的配置文件,用于设置在不同环境下(如开发环境或生产环境)运行应用程序时的应用程序设置。该文件通常位于项目的Properties文件夹中,包含一个JSON对象,其指定了控制应用程序行为的多个不同设置。这里我们只需要设置开发环境的url地址。.
这是配置的片段代码,我们这里把它的端口号改为5189
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5189",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
2、appsettings.json配置方法
其实在appsettings.json里也可以修改默认的端口,主要是配置Kestrel节点下终结点的默认url,片段代码如下:
"Kestrel":{
"Endpoints": {
"Https": {
"Url": "https://*:9001"
},
"Http": {
"Url": "http://*:9000"
}
}
}
3、在Program.cs使用代码修改
可以在Program的组件和中间件配置默认的url,但小编不推荐,这样做写死了不便于维护,尤其是在生产环境。方法有三种:
这种方式可以设置单个和多个,具体代码设置如下
builder.WebHost.UseUrls("https://*:9001");//单个设置
builder.WebHost.UseUrls(new[] { "http://*:9000", "https://*:9001" });
利用webhost下的组件配置。
builder.WebHost.ConfigureKestrel(options => options.ListenLocalhost(8090, opts => opts.Protocols = HttpProtocols.Http1));
这个是.NET6以上版本新增加的方式,利用中间件添加。
app.Urls.Add("http://localhost:9000");