C# 获取异常:指定的网络名称不再可用。(0x80070040)尝试使用ReadToEndAsync()读取HttpRequest正文时

C# 获取异常:指定的网络名称不再可用。(0x80070040)尝试使用ReadToEndAsync()读取HttpRequest正文时,c#,asp.net-core,C#,Asp.net Core,我有一个API post web方法,它尝试使用StreamReaderReadToEndAsync()获取请求正文。大多数情况下,它工作正常,但是对于非常随机的请求,我得到以下异常: 客户端已断开连接 内部例外 指定的网络名称不再可用。(0x80070040) 原因是什么?我阅读请求正文的方式是否不正确?如何解决此问题?我在.netcore 3.1中本地运行了相同的程序,一直运行良好。你能分享一下它失败的场景吗?你可以看看这个。@AjeetKumar谢谢你的回答。这就是问题所在,我不知道在什么

我有一个API post web方法,它尝试使用StreamReader
ReadToEndAsync()
获取请求正文。大多数情况下,它工作正常,但是对于非常随机的请求,我得到以下异常:

客户端已断开连接

内部例外

指定的网络名称不再可用。(0x80070040)


原因是什么?我阅读请求正文的方式是否不正确?如何解决此问题?

我在.netcore 3.1中本地运行了相同的程序,一直运行良好。你能分享一下它失败的场景吗?你可以看看这个。@AjeetKumar谢谢你的回答。这就是问题所在,我不知道在什么情况下它会失败。但它肯定会失败,因为它正在注销异常。该应用程序目前是通过IIS发布的,大部分时间运行良好,但会随机抛出该异常。
[HttpPost]
[Route("api/Logger/Log")]
public async Task<IActionResult> Log()
{
    try
    {
        HttpHelper httpHelper = new HttpHelper();
        var requestBody = await httpHelper.GetRequestBody(Request);
        return Ok();
    }
    catch (Exception ex)
    {
        _logger.LogException(ex);
        return StatusCode(500);
    }
}

public async Task<string> GetRequestBody(HttpRequest request)
{
    using (var reader = new StreamReader(request.Body))
    {
        return await reader.ReadToEndAsync();
    }
}
[Parameters]: {}
[Exception Message]: The client has disconnected
[StackTrace]:    at Microsoft.AspNetCore.Server.IIS.Core.IO.AsyncIOOperation.GetResult(Int16 token)
   at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadBody()
   at System.IO.Pipelines.PipeCompletion.ThrowLatchedException()
   at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result)
   at System.IO.Pipelines.Pipe.ReadAsync(CancellationToken token)
   at System.IO.Pipelines.Pipe.DefaultPipeReader.ReadAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.IIS.Core.IISHttpContext.ReadAsync(Memory`1 memory, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.IIS.Core.HttpRequestStream.ReadAsyncInternal(Memory`1 buffer, CancellationToken cancellationToken)
   at System.IO.StreamReader.ReadBufferAsync(CancellationToken cancellationToken)
   at System.IO.StreamReader.ReadToEndAsyncInternal()
   at OnlineBookingSystem.Utilities.HttpHelper.GetRequestBody(HttpRequest request) 
   at OnlineBookingSystem.Controllers.LoggingController.Log() 
[Inner Exception]: The specified network name is no longer available. (0x80070040)
[Inner StackTrace]: