System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead

发布时间 2024-01-06 10:48:46作者: 清和时光

报错:

System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead

产生原因:
在做 net6 webapi 项目时候,读取Request.bodystream流时,使用了同步读取的方法 reader.ReadToEnd(),而报错的大概意思是不要用同步读取
解决方案:
1、使用异步读取

reader.ReadToEndAsync()

2、依然使用同步读取,但需要在program中做一些配置,允许同步读取

builder.Services.Configure<KestrelServerOptions>(option => option.AllowSynchronousIO = true)
                .Configure<IISServerOptions>(option => option.AllowSynchronousIO = true);