Я вызываю веб-API ASP.Net, который работает локально и столкнулся с проблемой, которая возникает только после запуска моего приложения - только первый вызов завершается с ошибкой System.Net.Http.HttpRequestException.Я использую аутентификации Windows.Первый звонок никогда не достигает моего API, и исключение выдается клиенту.при вызове PostAsync.Любой последующий вызов после первого работает нормально.
StackTrace:
System.Net.Http.HttpRequestException: Ошибка при копировании содержимого в поток.---> System.IO.IOException: операция чтения не выполнена, см. Внутреннее исключение.---> System.Net.WebException: запрос был прерван: соединение было неожиданно закрыто.в System.Net.ConnectStream.BeginRead (буфер Byte [], смещение Int32, размер Int32, обратный вызов AsyncCallback, состояние объекта) в System.Net.Http.HttpClientHandler.WebExceptionWrapperStream.BeginRead (буфер Byte [], смещение Int32, счетчик Int32,Обратный вызов AsyncCallback, состояние объекта) --- конец трассировки стека внутренних исключений --- в System.Net.Http.HttpClientHandler.WebExceptionWrapperStream.BeginRead (буфер Byte [], смещение Int32, число Int32, обратный вызов AsyncCallback, состояние объекта) в системе.Net.Http.StreamToStreamCopy.StartRead () --- Конец трассировки стека внутренних исключений --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача Task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndtificationat System.Runtime.CompilerServices.TaskAwaiter`1.GetResult (
Код:
{
var exampleString = "example json as string";
var content = new StringContent(exampleString, Encoding.UTF8, "application/json");
HttpResponseMessage response;
var handler = new HttpClientHandler { UseDefaultCredentials = true };
using (var httpClient = new HttpClient(handler))
{
response = httpClient.PostAsync("http://localhost:5099/api/test", content).GetAwaiter().GetResult();
}
}
catch (Exception ex)
{
// exception caught here on first call
}
Метод API, вызываемый выше
[HttpPost]
[Authorize(Policy = nameof(Permissions.MyPermission))]
public ActionResult Post([FromBody]string payload)
{
}
Я не уверенчто происходит здесь. Мой exampleString является допустимой строкой JSON, которая работает при любом последующем вызове. tЭто единственное место в моем приложении, где используется HttpClient.что вызывает - «Ошибка при копировании контента в поток»?
Я нацеливаюсь на .Net Framework 4.5 на клиенте.
Спасибо