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

.NET Core 8 API部署后客户端浏览器访问出现ERR_CONNECTION_RESET问题求助

解决.NET Core 8 WebAPI在IIS 8上外部客户端访问的ERR_CONNECTION_RESET问题

核心排查点与修复方案

1. 端口防火墙未开放

服务器Windows防火墙或网络防火墙大概率没开放4000端口的HTTPS入站规则。.NET Core 8的端口绑定逻辑和.NET 7存在差异,旧环境的规则不一定适配新版本。

  • 操作步骤:
    1. 打开Windows Defender防火墙 → 高级设置
    2. 新建入站规则,选择「端口」类型
    3. 指定HTTPS端口4000,允许所有连接类型
    4. 应用规则到域、专用、公网环境

2. 自签名证书未被客户端信任

外部客户端浏览器未导入服务器的自签名SSL证书,导致HTTPS连接被直接中断(部分浏览器不会弹出证书错误提示,直接返回连接重置)。服务器本地浏览器因已导入证书所以能正常访问。

  • 操作步骤:
    1. 在服务器上导出自签名证书为.cer格式
    2. 发送给外部客户端,在浏览器的证书管理中,将证书导入到「受信任的根证书颁发机构」

3. .NET Core 8 IIS托管配置不兼容

.NET Core 8对IIS托管模块的要求比.NET 7更高,需检查web.config配置及托管模块版本:

  • 确保web.config中AspNetCoreModuleV2已正确配置,且启用日志排查启动问题:
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\YourApi.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
    
  • 安装.NET Core 8对应的Hosting Bundle,Windows Server 2012的IIS 8默认模块版本可能不兼容.NET 8,需更新到最新托管模块。

4. 混合内容拦截

Angular客户端用HTTP协议,API用HTTPS,属于混合内容场景,现代浏览器会严格拦截跨协议请求,外部客户端的安全策略比服务器本地更严格,因此出现连接重置。

  • 修复方案:将Angular客户端也部署为HTTPS,使用与API相同的SSL证书,统一协议后即可解决该问题。

5. UseUrls配置冲突

启动时手动指定UseUrls("https://*:4000")会和IIS的端口转发逻辑冲突,IIS托管的.NET Core应用无需手动绑定端口,应由IIS处理协议与端口路由。

  • 操作步骤:移除Program.cs中的UseUrls配置,确保IIS站点的HTTPS绑定已设置为4000端口并关联正确的SSL证书。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:54:54