Существуют ли способы программно моделировать проблемы с соединением (медленное соединение, ответ не завершен, соединение обрывается и т. Д.) При использовании класса HttpWebRequest?
Спасибо
РЕДАКТИРОВАТЬ: Чтобы уточнить, мне это нужно для отладки, но я хотел бы в конечном итоге превратить его в тест. Я использую асинхронные методы BeginGetRequestStream, EndGetRequestStream, BeginGetResponse и EndGetResponse. Я завернул их все должным образом (надеюсь). Попробуйте блоки Catch, в которых регистрируются возникающие исключения.
Я знаю, что это работает в некоторых случаях (например, когда я вытаскиваю сетевой кабель). Но в некоторых редких случаях (то есть, только когда веб-сайт, который я запрашиваю, работает медленно), моя система падает, и я получаю это в журнале событий
Exception: System.Net.WebException
Message: The request was aborted: The connection was closed unexpectedly.
StackTrace: at System.Net.ConnectStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
at System.IO.Compression.DeflateStream.ReadCallback(IAsyncResult baseStreamResult)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.ContextAwareResult.CompleteCallback(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
Я предполагаю, что это из HttpWebRequest, но опять же весь мой код обернут в блоки Try Catch.
Поможет ли издевательство в таком случае?