8.3发送请求出现长时间挂起或阻塞
创建于 2026 年 8 月 17 日约 1 分钟读完
若发送 HTTP 远程请求时,出现长时间挂起或阻塞,可能是您在构造请求时使用了类似以下方式获取本机 IP 或 MAC 地址:
var addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;Dns.GetHostName() 获取本机主机名,Dns.GetHostEntry(主机名) 则会通过 DNS、NetBIOS 等机制解析该名称。如果主机名未在 DNS 中注册或 DNS 服务器不可达,解析过程会一直等待直到系统超时(Windows 默认约 10~15 秒),导致每个请求都被阻塞。
此时,可使用框架内置的 HttpRemoteUtility 工具方法替代,它们直接读取本地网络接口信息,完全无 DNS/NetBIOS 查询,执行时间 < 1 毫秒:
// 获取本机 IPv4 地址var ip = HttpRemoteUtility.GetLocalIPv4();// 获取本机 MAC 地址var mac = HttpRemoteUtility.GetLocalMacAddress();采用上述方法即可消除因本机主机名解析导致的长时间阻塞,恢复正常的 HTTP 请求响应速度。