如何从本地访问远程服务器IIS托管的ASP.NET Core应用
本地访问IIS托管ASP.NET Core站点连接被拒绝解决方法
连接被拒绝说明请求未到达IIS应用层,属于网络、绑定或端口拦截类问题,按以下顺序排查即可:
- 修正IIS站点绑定配置
服务器本地可通过http://aspcore.local:90/访问,首先排查绑定限制:打开远程服务器IIS管理器,找到目标站点后点击右侧「绑定」选项,编辑90端口对应的绑定规则,将IP地址项从默认的本地回环地址/仅域名匹配改为「全部未分配」,或直接选中服务器对应的内网IP192.168.20.1,主机名可按需保留aspcore.local或留空,保存后重启站点。 - 放开服务器端口防火墙规则
Windows服务器默认会拦截非常用端口的外部入站请求,这是该问题最高发的原因:登录远程服务器打开「高级安全Windows Defender防火墙」,选择「入站规则」后新建规则,规则类型选择「端口」,协议选TCP、特定本地端口填入90,后续步骤选择「允许连接」,网络配置项根据实际环境勾选(内网测试可全选域、专用、公网),命名规则后保存即可。如果是云服务器,还需要同时在云平台控制台的安全组配置中放开90端口的TCP入站规则,否则系统层防火墙放开也无法访问。 - 验证本地到服务器的链路连通性
在本地机器打开终端,先执行ping 192.168.20.1确认基础网络连通,再执行端口检测:Windows可在PowerShell中运行Test-NetConnection 192.168.20.1 -Port 90,如果返回结果中TcpTestSucceeded为True,说明端口链路已经打通,此时直接访问http://192.168.20.1:90即可正常打开站点。 - 本地域名访问配置(可选)
如果需要和服务器端一样用http://aspcore.local:90/访问,只需修改本地hosts映射:用管理员权限打开记事本,编辑C:\Windows\System32\drivers\etc\hosts文件,在末尾新增一行192.168.20.1 aspcore.local,保存后执行ipconfig /flushdns刷新本地DNS缓存即可。
排查提示:如果以上操作完成后仍无法连接,检查服务器是否安装了第三方安全防护软件,这类软件可能存在独立的端口拦截规则,需要同步在软件中放开90端口的访问权限。
内容的提问来源于stack exchange,提问作者Veck
相关产品推荐
相关产品推荐

