如何通过.exe启动ASP.NET Web API并指定自定义地址端口?
如何通过.exe启动ASP.NET Web API并指定自定义地址和端口
下面是几种实用的方法,按推荐程度排序:
方法1:命令行参数指定(灵活方便)
直接在运行.exe时添加--urls参数,指定你需要的地址和端口:
- 如果是框架依赖部署的项目,运行命令:
dotnet YourApiProject.dll --urls "http://localhost:8080;https://localhost:8081" - 如果是自包含部署的项目(直接生成.exe文件),运行命令:
注意:用YourApiProject.exe --urls "http://0.0.0.0:8080"0.0.0.0代替localhost可以允许同一局域网内的其他设备访问你的API,多个地址用分号;分隔。
方法2:修改配置文件(持久化配置)
在项目的appsettings.json中添加Kestrel端点配置,这样每次运行.exe都会自动使用指定地址:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "Kestrel": { "Endpoints": { "Http": { "Url": "http://localhost:8080" }, "Https": { "Url": "https://localhost:8081" } } }, "AllowedHosts": "*" }
发布项目时,确保appsettings.json和.exe文件放在同一目录下即可。
方法3:代码中配置(不推荐,灵活性差)
如果需要固定端口且不需要后续修改,可以在Program.cs中硬编码Kestrel配置:
var builder = WebApplication.CreateBuilder(args); // 配置Kestrel监听端口 builder.WebHost.ConfigureKestrel(serverOptions => { serverOptions.ListenLocalhost(8080); // 监听HTTP本地端口8080 serverOptions.ListenLocalhost(8081, opts => opts.UseHttps()); // 监听HTTPS本地端口8081 }); // 注册服务... var app = builder.Build(); // 配置中间件... app.Run();
这种方法的缺点是修改端口需要重新编译代码,适合测试场景,不推荐生产环境使用。
内容的提问来源于stack exchange,提问作者fanticuell
相关产品推荐
相关产品推荐

