ASP.NET核心服务器,AllowSynchronousIO
被设定为false
new WebHostBuilder()
.UseKestrel(options =>
{
options.AllowSynchronousIO = false;
})
在action中,它输出一个JsonResult
public async Task<IActionResult> SanityCheck()
{
Dictionary<string, string> dic = await GetDic();
return this.Json(dic);
}
它以一个例外结束
System.InvalidOperationException:同步操作是
不允许。改为调用 WriteAsync 或将 AllowSynchronousIO 设置为 true。
我不能返回 JsonResult 吗AllowSynchronousIO=false
?
您可能会遇到以下问题:https://github.com/aspnet/AspNetCore/issues/8302
您可以在这里找到更多信息:https://github.com/aspnet/AspNetCore/issues/7644
解决问题之前的解决方法是允许同步 IO。将其放入 Kestrel 或 IIS 的 Startup.cs 中:
public void ConfigureServices(IServiceCollection services)
{
// If using Kestrel:
services.Configure<KestrelServerOptions>(options =>
{
options.AllowSynchronousIO = true;
});
// If using IIS:
services.Configure<IISServerOptions>(options =>
{
options.AllowSynchronousIO = true;
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)