在程序运行时更改了Dns设置
本文关键字:Dns 设置 程序 运行时 | 更新日期: 2023-09-27 18:06:24
我有一个使用WebRequest访问http站点的程序。如果我启动程序执行一些webquest,然后更改我的机器的Dns设置,程序将不会更改Dns -servers
WebRequest.Create("http://www.google.com");
…将我的网络接口的Dns设置更改为无效或捕获门户....
WebRequest.Create("http://www.google.com");
// Still uses original dns server for dns lookup (or cache)
ipconfig flushdns
无差异
我可以强迫WebRequest使用实际的dns服务器进行dns查找吗?
编辑:似乎重新启动windows服务为DnsClient缓存做的技巧。相当硬核在内部,每个服务器都由ServicePoint类抽象。因此,一旦你创建了ServicePoint,无论是显式的还是隐式的,它都不会改变。
同时,它也可能缓存前一个连接并将其用于后续请求。
你可以试着设置
HttpWebRequest。KeepAlive = false
和
HttpWebRequest。ConnectionGroupName = String。格式("连接-{0}",
+ +指数);
,看看这是否会迫使。net每次都创建一个新的连接。
如果这不起作用,尝试实现BindIPEndPointDelegate()方法并将其附加到webrequest。然后,对于每个请求,. net将调用该委托来解析端点IPAddress,您可以在该委托中执行DNS.Resolve()。