У меня ASP.Net MVC Core (2.1.0) с предварительным рендерингом SPA.
Я получаю тайм-аут изнутри моего промежуточного программного обеспечения токена JWT в строке "await next ()".
Я начал получать ошибку, когда обновил свой @ angular / cli до последней версии (v6.0.8), в которую также добавлен @ angular-devkit / build-angular (v0.6.8).
Я не получаю никаких ошибок при запуске "ng build".
public static class JwtTokenMiddleware
{
public static IApplicationBuilder UseJwtTokenMiddleware(this IApplicationBuilder app, string schema = JwtBearerDefaults.AuthenticationScheme)
{
return app.Use(async (ctx, next) =>
{
if (ctx.User.Identity?.IsAuthenticated != true)
{
var result = await ctx.AuthenticateAsync(schema);
if (result.Succeeded && result.Principal != null)
{
ctx.User = result.Principal;
}
}
await next();
});
}
}
Stacktrace:
System.TimeoutException: процесс сборки перед рендерингом
не завершено в течение времени ожидания 50 секунд. Проверить
вывод журнала для информации об ошибках. в
Microsoft.AspNetCore.SpaServices.Extensions.Util.TaskTimeoutExtensions.WithTimeout (Task
задача, TimeSpan timeoutDelay, String message) в
Microsoft.AspNetCore.Builder.SpaPrerenderingExtensions. <> C__DisplayClass0_0. d.MoveNext ()
--- Конец стека трассировки из предыдущего места, где было сгенерировано исключение --- в
Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke (HttpContext
httpContext) в
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke (HttpContext
контекст) в
MyProject.JwtTokenMiddleware. <> C__DisplayClass0_0. d.MoveNext ()
в
/MyProject/UseJwtTokenMiddleware.cs:line
23
--- Конец стека трассировки из предыдущего места, где было сгенерировано исключение --- в
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke (HttpContext
контекст) в
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (HttpContext
контекст) в
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke (HttpContext
контекст)
UPDATE:
Обновление angular-cli заменяет некоторые настройки. Исходный файл .angular-cli.json имел настройки для папки рендеринга на стороне сервера. Это исчезло с новым файлом angular.json, который переписал обновление. Вот почему ASP.Net не смог его найти. Теперь мне нужно вернуть настройки SSR в файл angular.json.
ОБНОВЛЕНИЕ 2:
В документах по https://angular.io/guide/universal#angular-cli-configuration указано, что нужно добавить в angular.json.