ASP.NET Core 修改默认端口:从UseUrls到host.json配置

2 下载量 98 浏览量 更新于2024-08-31 收藏 337KB PDF 举报
"asp.net core 修改默认端口的几种方法" ASP.NET Core 是微软推出的高性能、跨平台的开源框架,用于构建Web应用。默认情况下,ASP.NET Core 的开发服务器Kestrel会监听5000端口。但在实际开发或部署过程中,我们可能需要自定义端口,以避免冲突或者满足特定需求。以下是两种常见的修改ASP.NET Core 应用默认端口的方法: ### 方法一:UseUrls 在 `Program` 类中的 `CreateWebHostBuilder` 方法中,可以通过调用 `UseUrls` 扩展方法来设置监听的URL。例如,如果你想将应用监听在8080端口,可以修改代码如下: ```csharp public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseUrls("http://*:8080") // 将8080作为监听端口 .UseStartup<Startup>(); ``` 这里,`"*"` 表示任何IP地址,所以应用将在所有网络接口上监听8080端口。但是,如果需要频繁更换端口,这种方法并不理想,因为每次更改都需要修改代码并重新发布。 ### 方法二:host.json 和 IConfiguration ASP.NET Core 支持通过配置文件进行端口设置,特别是在发布环境中,这更加灵活。首先,创建一个名为 `host.json` 的文件放在项目的根目录下,然后添加以下内容: ```json { "webHost": { "urls": [ "http://localhost:8081" ] } } ``` 这里的 `urls` 字段指定了应用启动时监听的URL。现在,当你运行或发布应用时,它将自动使用配置文件中指定的端口。然而,这种方法需要确保 `host.json` 文件能够正确地随应用一起发布,并且在运行时可以被读取。 **注意**:在开发环境中,可以通过 `dotnet run --urls=http://*:8081` 命令行参数临时指定端口。而在生产环境,通常会通过环境变量、配置服务或其他方式获取端口设置。 ### 扩展:使用IIS反向代理 如果你的ASP.NET Core应用部署在IIS下,还可以通过IIS的URL重写模块将请求转发到非默认端口的应用。这样,用户可以访问IIS的默认端口(如80),而内部请求则会被转发到应用的实际端口。 ### 总结 选择哪种方法取决于你的具体需求和工作流程。`UseUrls` 方法简单直接,适合快速测试;而使用 `host.json` 结合 `IConfiguration` 更加灵活,适用于多环境部署。对于IIS部署,结合URL重写可以提供更高级别的控制和用户体验。无论哪种方式,理解如何自定义端口都是ASP.NET Core开发者必备的技能。