.Net Core 3预览:不允许同步操作

问题描述 投票:2回答:2

我有一个AngularJs应用程序,我移植到.Net Core。

它在之前版本的.Net Core 3预览版中运行良好; 3.2。

但是,升级到最新的3.3后,一些get请求返回此错误:

InvalidOperationException:不允许同步操作。调用WriteAsync或将AllowSynchronousIO设置为true。

我不明白为什么只有一些请求而不是其他请求才会发生这种情况。

我相信默认情况下AngularJs会执行async:xhr.open(method,url,true);

任何人都可以对此有所了解吗?

.net core preview synchronous
2个回答
6
投票

这里描述了这个问题:https://github.com/aspnet/AspNetCore/issues/8302

现在的解决方法是在startup.cs中手动将AllowSynchronous设置为true;

// Startup.ConfigureServices

services.Configure<IISServerOptions>(options =>
{
  options.AllowSynchronousIO = true;
});

感谢Chris Ross的帮助


4
投票

值得注意的是,如果您直接在kestrel上托管,那么您的Program.cs应该有适当的ConfigureKestrel调用

   public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .ConfigureKestrel((context, options) =>
                {
                    options.AllowSynchronousIO = true;
                })
© www.soinside.com 2019 - 2024. All rights reserved.