Предварительный просмотр .Net Core 3: синхронные операции запрещены - PullRequest
2 голосов
/ 07 марта 2019

У меня есть приложение AngularJs, которое я портирую на .Net Core.

В предыдущей версии предварительного просмотра .Net Core 3 все работало нормально; 3.2.

Однако после обновления до последней версии 3.3 некоторые запросы get возвращают эту ошибку:

InvalidOperationException: синхронные операции запрещены. Вместо этого вызовите WriteAsync или установите для параметра AllowSynchronousIO значение true.

Я не понимаю, почему это происходит только с некоторыми запросами, а не с другими.

Я считаю, что по умолчанию AngularJs выполняет async: xhr.open (method, url, true);

Может кто-нибудь пролить свет на это?

Ответы [ 2 ]

5 голосов
/ 08 марта 2019

Эта проблема описана здесь: https://github.com/aspnet/AspNetCore/issues/8302

Обходной путь на данный момент - вручную установить значение AllowSynchronous в true в файле startup.cs;

// Startup.ConfigureServices

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

спасибо Крису Россу за помощь

3 голосов
/ 06 мая 2019

Стоит отметить, что если вы размещаете на kestrel напрямую, то ваш Program.cs должен иметь соответствующий вызов ConfigureKestrel

   public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .ConfigureKestrel((context, options) =>
                {
                    options.AllowSynchronousIO = true;
                })
...