angularjs - .NET Core 3 预览版 : Synchronous operations are disallowed

标签 angularjs .net-core synchronous .net-core-3.0

我有一个要移植到 .NET Core 的 Angular.js 应用程序。
它在以前版本的 .NET Core 3 预览版中运行良好; 3.2.
但是,升级到最新的 3.3 后,一些 get 请求返回此错误:

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


我不明白为什么只有一些请求而不是其他请求会发生这种情况。
我相信默认情况下 Angular.js 会异步:xhr.open(method, url, true);
任何人都可以对此有所了解吗?

最佳答案

您可以使用特殊方法禁用它

var syncIOFeature = HttpContext.Features.Get<IHttpBodyControlFeature>();
if (syncIOFeature != null)
 {
  syncIOFeature.AllowSynchronousIO = true;
 }
或在所有应用程序范围内禁用
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .ConfigureKestrel((context, options) =>
            {
                options.AllowSynchronousIO = true;
            })
或在服务中配置启动
services.Configure<IISServerOptions>(options =>
{
  options.AllowSynchronousIO = true;
});

关于angularjs - .NET Core 3 预览版 : Synchronous operations are disallowed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55052319/

相关文章:

asynchronous - jedis是同步的还是异步的? redis提供什么一致性保证?

windows - 如何使用 launch.json 定位平台

sql-server - 如何在不使用 Entity Framework 的情况下从.Net Core连接到SQL Server?

javascript - Angularjs 从 Controller 范围内的 promise 返回数据

angularjs - 将 ng-repeat 绑定(bind)到一个 promise

unit-testing - 如何对 ActionFilterAttribute 进行单元测试

javascript - 哪些方法在 Javascript 中被阻塞?

Angular/TypeScript - 在另一个函数完成后调用一个函数

javascript - AngularJS - $rootScope.currentUser 未从个人资料页面转移到设置页面

javascript - ng-if 在变量更改时不更新 DOM