Blazor Server应用IIS远程部署:HTTP无法访问、HTTPS正常的原因及解决方法
Blazor Server IIS部署:HTTP无法访问问题排查与解决
可能的原因
- 服务器防火墙/安全组未开放80端口:远程服务器的Windows防火墙或云服务商安全组(如阿里云ECS、AWS安全组)大概率只放行443端口,80端口处于封禁状态,导致外部无法通过HTTP访问。
- 80端口被其他服务占用:服务器上可能有IIS默认站点、Apache、Nginx或其他系统服务占用80端口,导致你的站点HTTP绑定未实际生效。
- IIS HTTP绑定配置异常:虽设置IP为
*,但可能存在主机名填写错误、误选证书(HTTP无需证书)或绑定条目未成功创建的情况。 - Blazor应用强制HTTPS配置:项目中若添加了
app.UseHttpsRedirection()或开启了项目属性的「启用HTTPS」,可能导致HTTP请求被拦截(通常表现为跳转HTTPS,但也可能因配置问题直接无法访问)。
解决步骤
1. 开放80端口
- Windows防火墙:打开「Windows Defender防火墙」→「高级设置」→「入站规则」,确认是否存在允许TCP 80端口的规则。若没有,新建入站规则,允许TCP协议80端口,作用域设为所有远程IP。
- 云服务商安全组:登录云服务器控制台,找到对应实例的安全组配置,添加入站规则,允许TCP 80端口访问,来源设为
0.0.0.0/0(或你需要的特定IP范围)。
2. 检查80端口占用
- 以管理员权限打开命令提示符,执行命令:
查看输出中的PID,打开任务管理器找到对应进程并停止(如停止IIS默认站点、结束占用端口的程序),之后重启你的Blazor站点。netstat -ano | findstr ":80"
3. 验证IIS HTTP绑定
- 打开IIS管理器,选中你的Blazor站点,右键→「编辑绑定」,确认存在一条**类型为HTTP、IP为
*、端口80、主机名空(或与HTTPS绑定一致)**的条目。若没有,点击「添加」重新创建,注意不要选择任何证书,完成后重启站点。
4. 调整Blazor应用HTTPS配置
- 打开项目
Program.cs,若存在app.UseHttpsRedirection(),可选择注释掉(取消强制HTTPS跳转);若需保留,确保appsettings.json中HttpsRedirection参数配置正确,避免HTTP请求被直接拒绝。同时检查项目属性「调试」选项卡,关闭「启用HTTPS」(部署环境无需该调试配置)。
5. 本地测试验证
- 在服务器本地浏览器访问
http://localhost或http://服务器内网IP,若能访问则问题出在外部网络端口放行;若本地也无法访问,回到前面步骤排查IIS绑定或应用配置。
内容的提问来源于stack exchange,提问作者CSharp-Lucas
相关产品推荐
相关产品推荐

