![](/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.