C# .NET 5异常引发内容流错误

C# .NET 5异常引发内容流错误,c#,.net,.net-5,C#,.net,.net 5,我正在将一个项目升级到.NET5.0,我们的一个异常扩展类在其他类通过的测试中失败。这只是.NET5.0中的一个问题,它在.NETCore3.1中运行良好 测试检查的代码中引发的两个异常的示例: if(request.GroupId System.IO.IOException:-->MyProject.Data.Exceptions.EntityNotFoundException:找不到组。 堆栈跟踪: DeleteGroupCommandHandler.Handle(DeleteGroupCo

我正在将一个项目升级到.NET5.0,我们的一个异常扩展类在其他类通过的测试中失败。这只是.NET5.0中的一个问题,它在.NETCore3.1中运行良好

测试检查的代码中引发的两个异常的示例:

if(request.GroupId System.IO.IOException:-->MyProject.Data.Exceptions.EntityNotFoundException:找不到组。
堆栈跟踪:
DeleteGroupCommandHandler.Handle(DeleteGroupCommand请求,CancellationToken CancellationToken)第40行
RequestExceptionProcessorBehavior`2.Handle(TRequest请求、CancellationToken CancellationToken、RequestHandlerDelegate`1下一步)
...
EntityNotFoundException-失败

公共类EntityNotFoundException:ExceptionBase
{
私有静态字符串DefaultMessageHeader=>“未找到”;
公共覆盖HttpStatusCode StatusCode=>HttpStatusCode.NotFound;
公共EntityNotFoundException(字符串消息,字符串消息头=null)
:base(message,messageHeader??DefaultMessageHeader){}
}
BadRequestException-通过

公共类BadRequestException:ExceptionBase
{
私有静态字符串DefaultMessageHeader=>“错误请求”;
公共覆盖HttpStatusCode StatusCode=>HttpStatusCode.BadRequest;
public BadRequestException(字符串消息,字符串消息头=null)
:base(message,messageHeader??DefaultMessageHeader){}
}
EntityNotFoundException
类有什么问题?为什么只有那些失败

更新1

测试:

//失败
[数据测试方法]
[数据行(int.MaxValue)]
公共异步任务DeleteGroup\u IdDoesNotExist\u NotFound(int-groupId)
{
var response=await Client.deleteAncy($“/api/groups/{groupId}”);
response.StatusCode.Should().Be(HttpStatusCode.NotFound);
}
//通行证
[数据测试方法]
[数据行(0)]
[数据行(-1)]
公共异步任务DeleteGroup_InvalidId_BadRequest(int-groupId)
{
var response=await Client.deleteAncy($“/api/groups/{groupId}”);
response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
}
找到了一个修复测试的方法,但仍然不确定为什么只有
EntityNotFoundException
异常类而没有其他异常类发生错误

如果有人知道为什么下面的代码会修复失败的测试,我很想听听

解决方案是指定
HttpCompletionOption.ResponseHeadersRead
标志,该标志在
deleteAncy
中不可用,因此请切换到
sendancy

发件人:

使用var response=wait Client.deleteAncy($“/api/groups/{groupId}”);
至:

使用var response=wait Client.sendaync(新的HttpRequestMessage(HttpMethod.Delete,$”/api/groups/{groupId})、HttpCompletionOption.ResponseHeadersRead);

您的测试是什么样子的?在更新1中添加了测试