svr*_*ist 5 c# dns httpwebrequest
我有一个使用WebRequest访问http站点的程序.如果我启动程序执行一些webRequests,然后更改我的机器的Dns设置,该程序将不会更改DNS服务器
喜欢
WebRequest.Create("http://www.google.com");
Run Code Online (Sandbox Code Playgroud)
....将网络接口的Dns设置更改为无效或捕获门户....
WebRequest.Create("http://www.google.com");
// Still uses original dns server for dns lookup (or cache)
Run Code Online (Sandbox Code Playgroud)
ipconfig flushdns 没有区别
我可以用任何方式强制WebRequest使用实际的DNS服务器进行dns查找吗?
编辑:似乎重新启动DnsClient缓存的Windows服务就可以了.虽然相当铁杆
在内部,每个服务器都由 ServicePoint 类抽象。因此,一旦创建了 ServicePoint,无论是显式的还是隐式的,它都不会改变。
此外,它可能会缓存先前的连接并将其用于后续请求。
您可以尝试设置
HttpWebRequest.KeepAlive = false
和
HttpWebRequest.ConnectionGroupName = String.Format("连接-{0}", ++index);
看看这是否会强制 .NET 每次都创建一个新连接。
如果这不起作用,请尝试实现 BindIPEndPointDelegate() 方法并将其附加到 Web 请求。然后,对于每个请求,.NET 将调用该委托来解析端点 IPAddress,并且您可以在该委托中执行 DNS.Resolve()。
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |