IIS部署网站无法访问:DNS及HTTP 502.5故障排查记录
解决IIS部署.NET网站遇到的DNS_PROBE_FINISHED_NXDOMAIN和HTTP 502.5错误
最近我在服务器上部署.NET网站时接连踩了两个坑,折腾了好一会儿才搞定,分享下我的排查和解决过程:
遇到的问题
- 安装完.NET Hosting Bundle、用IIS创建网站后,通过外部URL访问时,Chrome直接弹出
DNS_PROBE_FINISHED_NXDOMAIN错误,根本连不上服务器。 - 为了先测试本地访问,我给网站加了
localhost:443的绑定,结果服务器本地访问时又出现HTTP 502.5错误,查看IIS日志发现请求明明已经被接收,但就是返回错误。
排查与解决过程
先处理DNS解析问题
DNS_PROBE_FINISHED_NXDOMAIN本质是域名解析失败,说明外部访问时域名没有正确指向服务器的公网IP。我当时先跳过外部访问,专注解决本地502.5的问题,后续再去调整域名的A记录解析。
启用.NET Core stdout日志定位502.5错误
IIS日志只显示请求被接收,但看不到.NET应用内部的错误信息,这时候就得启用.NET Core的标准输出日志:
- 找到网站根目录下的
web.config文件,编辑其中的<aspNetCore>节点:
<aspNetCore processPath="dotnet" arguments=".\YourApplication.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
- 关键是把
stdoutLogEnabled从false改成true,同时指定日志输出路径.\logs\stdout - 注意:如果网站根目录下没有
logs文件夹,要手动创建,并且给IIS进程(一般是IIS_IUSRS用户)分配读写权限,不然日志写不进去。
- 重启IIS网站后,再次访问触发502.5错误,然后去
.\logs目录下查看生成的日志文件。日志里会详细记录.NET应用启动失败的具体原因——可能是缺失某个依赖包、appsettings配置错误、端口被占用,甚至是.NET Runtime版本不匹配。 - 根据日志提示修复问题后,网站就能正常访问了。
总结
DNS_PROBE_FINISHED_NXDOMAIN:优先检查域名解析配置,确保域名的A记录指向服务器公网IP,本地测试也可以修改hosts文件临时绑定域名和IP。- HTTP 502.5:这是.NET Core应用启动失败的典型标志,只看IIS日志找不到根本原因,启用stdout日志是最直接有效的排查手段。
内容的提问来源于stack exchange,提问作者JDias
相关产品推荐
相关产品推荐

