You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7 Blazor WASM(含Server)部署IIS后无法修改API监听端口5000

解决Blazor Hosted应用API端口/域名适配问题

1. 修正Server项目的API监听配置

  • 打开Server项目的appsettings.json,检查是否存在Urls配置项。如果有硬编码的http://localhost:5000相关内容,直接删除或注释掉这一行。部署到IIS后,Kestrel会自动接收IIS反向代理的请求,无需硬编码本地端口。
  • 若Server项目的Program.cs里写死了Kestrel监听地址(比如builder.WebHost.UseUrls("http://localhost:5000")),删掉这行代码,让IIS管理端口与域名绑定。

2. 调整Client项目的API请求地址

  • 打开Client项目的Program.cs,找到注册HttpClient的代码,把硬编码的http://localhost:5000替换为相对路径或动态域名:
    • 推荐用相对路径:builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });,这样Client会自动使用当前网站域名(如https://example.com)作为API基础地址。
    • 若API有特定路由前缀(如/api),确保请求时带上前缀,或在BaseAddress中包含该路径。
  • 同步检查Client项目wwwroot/appsettings.json中的API地址配置,替换为相对路径或当前域名。

3. 确认IIS站点配置

  • 确保IIS站点绑定了example.com的HTTPS证书,端口设置为标准HTTPS端口443。
  • 应用池的.NET CLR版本设为No Managed Code(Blazor Hosted的Server项目是ASP.NET Core,无需传统.NET CLR环境)。
  • 站点物理路径指向发布后的Server项目输出文件夹(Hosted模式下Server是入口,会托管Client静态文件)。

4. 验证混合内容问题

部署完成后,打开浏览器开发者工具(F12)的Console标签,检查是否还有混合内容报错。若有,排查是否存在其他硬编码的HTTP请求地址(如静态资源、第三方接口),全部替换为HTTPS或相对路径。

内容的提问来源于stack exchange,提问作者Stefan Mostert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:50:23