我有一个要移植到 .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/