配置指向本地C# Controller的测试域名及访问超时排查
缺失的配置步骤
你目前只完成了hosts域名到本地IP的映射,还需要补全以下配置才能正常访问:
- 补全应用的监听绑定规则
本地运行的C# Controller(ASP.NET Core项目)默认用Kestrel或IIS Express托管时,默认仅响应主机头为localhost/127.0.0.1的请求,不会自动识别你新增的自定义域名:- 用Kestrel自托管的场景:修改项目下的
appsettings.json,调整Kestrel端点配置,让44347端口的HTTPS服务监听所有主机头的请求,参考配置:"Kestrel": { "Endpoints": { "CustomHttps": { "Url": "https://*:44347", "Certificate": { "Path": "你的HTTPS证书本地路径", "Password": "证书密码" } } } } - 用IIS Express本地调试的场景:打开项目根目录下隐藏文件夹
.vs/config/内的applicationhost.config,找到对应项目的site配置节点,新增一条HTTPS绑定:<binding protocol="https" bindingInformation="*:44347:mytest.mycom.com" /> - 用HTTP.sys托管的场景:以管理员权限打开命令行,执行命令添加对应URL的访问权限:
netsh http add urlacl url=https://mytest.mycom.com:44347/ user=Everyone
- 用Kestrel自托管的场景:修改项目下的
- 配置匹配自定义域名的HTTPS证书
VS默认生成的本地开发HTTPS证书仅颁发给localhost域名,用自定义域名访问时会触发TLS握手失败,很多浏览器会直接表现为连接超时。你需要生成把mytest.mycom.com加入SAN(主题备用名称)的自签名证书,导入到Windows本地计算机的「受信任的根证书颁发机构」存储后,把证书配置到上面的服务绑定规则里即可。 - 校验基础配置有效性
- 检查hosts配置格式:正确写法是IP在前域名在后,即
127.0.0.1 mytest.mycom.com,不要加多余的符号、注释,改完执行ipconfig /flushdns刷新本地DNS缓存。 - 检查Windows防火墙入站规则,确认44347端口、项目对应的dotnet进程/IIS Express进程没有被拦截,可临时关闭防火墙测试是否是拦截导致的超时。
- 检查hosts配置格式:正确写法是IP在前域名在后,即
- 清理本地缓存
浏览器会缓存旧的DNS解析结果、HSTS策略,改完配置后建议用无痕模式访问测试,排除缓存导致的异常。
内容的提问来源于stack exchange,提问作者n179911a
相关产品推荐
相关产品推荐

