2015-04-14 2 views
0

Я хотел бы быть в состоянии воспроизвести следующее сообщение об ошибке:Replicate IO Exception Error

IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. 

Любые идеи о том, как я могу сделать это, делая веб-запрос, а затем в результате чего произойдет эта ошибка?

Я попытался сделать веб-запрос и отсоединить сетевой кабель, который не воспроизводил ошибку, я просто заинтригован, как я могу это сделать.

+0

Что вы хотите сделать после того, как вы воспроизвели ошибку. Это тест? –

+0

@PraveenPaulose Нет, просто любопытно, как некоторые связанные с сетью ошибки могут быть воспроизведены. –

ответ

0

Последняя строка создаст ваше исключение.

Идея: создание слушателя tcp (или прослушивателя Http), а затем закрытие соединения без отправки действительного ответа HTTP.

TaskCompletionSource<object> tcs = new TaskCompletionSource<object>(); 
Task.Run(() => 
{ 
    TcpListener listener = new TcpListener(8080); 
    listener.Start(); 
    tcs.TrySetResult(null); 
    while (true) 
    { 
     listener.AcceptTcpClient().Close(); 
    } 
}); 

await tcs.Task; //wait till TcpListener is ready 

Webclient wc = new Webclient(); 
var str = await wc.DownloadStringTaskAsync("http://localhost:8080"); 
+0

Большое вам спасибо! –