![](/img/trans.png)
[英]DNS resolution failure in HttpClient throws Unhandled AggregateException
[英]How to simulate DNS name resolution failure in WebRequest?
最近发现,在C#中使用异步套接字API实际上会在调用线程上执行DNS解析,因此,如果解析存在问题,它将一直挂起直到超时。
我想找到一种无需接触运行代码即可模拟DNS解决问题的方法,以便质量检查人员也可以在测试中使用它。
敏感 :许多.NET异步API(例如WebRequest,Image(WinForms,WPF))在调用线程上执行DNS解析,这可能导致UI挂起。
示例:(我希望能够模拟什么)
如果DNS无法解析,则代码将永远无法到达(1),但在某些超时延迟后,EndGetResponse(2)中会引发异常。
class Program
{
static void Main()
{
var request = WebRequest.Create("http://www.google.com");
request.BeginGetResponse(WebRequestCallback, request);
// (1)
Console.ReadLine();
}
private static void WebRequestCallback(IAsyncResult ar)
{
// (2)
var response = ((WebRequest) ar.AsyncState).EndGetResponse(ar);
}
}
Thx Hans,好主意。
我将添加确切的步骤:
(*)必须是可以解析但不会返回DNS答复的IP(google.com很好),因为否则DHCP会返回响应太快,导致地址无法解析,并且如果服务器存在,则不应返回响应因此将达到超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.