openiddict - Invalid Cast Exception with on .NET Core 3.1 with 3.0.0-beta1.20306.64
问题描述
System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.DateTimeOffset'.
at Microsoft.Data.SqlClient.SqlDataReader.GetFieldValueFromSqlBufferInternal[T](SqlBuffer data, _SqlMetaData metaData)
at Microsoft.Data.SqlClient.SqlDataReader.GetFieldValueInternal[T](Int32 i)
at Microsoft.Data.SqlClient.SqlDataReader.GetFieldValue[T](Int32 i)
at lambda_method(Closure , QueryContext , DbDataReader , ResultContext , Int32[] , ResultCoordinator )
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at OpenIddict.EntityFrameworkCore.OpenIddictEntityFrameworkCoreTokenStore`5.FindByIdAsync(String identifier, CancellationToken cancellationToken) in /_/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs:line 401
at OpenIddict.Core.OpenIddictTokenCache`1.<>c__DisplayClass11_0.<<FindByIdAsync>g__ExecuteAsync|0>d.MoveNext() in /_/src/OpenIddict.Core/Caches/OpenIddictTokenCache.cs:line 533
--- End of stack trace from previous location where exception was thrown ---
at OpenIddict.Core.OpenIddictTokenManager`1.FindByIdAsync(String identifier, CancellationToken cancellationToken) in /_/src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs:line 409
at OpenIddict.Core.OpenIddictTokenManager`1.OpenIddict.Abstractions.IOpenIddictTokenManager.FindByIdAsync(String identifier, CancellationToken cancellationToken) in /_/src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs:line 1336
at OpenIddict.Server.OpenIddictServerHandlers.ValidateTokenEntry.HandleAsync(ProcessAuthenticationContext context) in /_/src/OpenIddict.Server/OpenIddictServerHandlers.cs:line 833
at OpenIddict.Server.OpenIddictServerProvider.DispatchAsync[TContext](TContext context) in /_/src/OpenIddict.Server/OpenIddictServerProvider.cs:line 54
at OpenIddict.Server.OpenIddictServerProvider.DispatchAsync[TContext](TContext context) in /_/src/OpenIddict.Server/OpenIddictServerProvider.cs:line 52
at OpenIddict.Server.OpenIddictServerHandlers.Userinfo.ValidateToken.HandleAsync(ValidateUserinfoRequestContext context) in /_/src/OpenIddict.Server/OpenIddictServerHandlers.Userinfo.cs:line 434
at OpenIddict.Server.OpenIddictServerProvider.DispatchAsync[TContext](TContext context) in /_/src/OpenIddict.Server/OpenIddictServerProvider.cs:line 54
at OpenIddict.Server.OpenIddictServerProvider.DispatchAsync[TContext](TContext context) in /_/src/OpenIddict.Server/OpenIddictServerProvider.cs:line 52
at OpenIddict.Server.OpenIddictServerHandlers.Userinfo.ValidateUserinfoRequest.HandleAsync(ProcessRequestContext context) in /_/src/OpenIddict.Server/OpenIddictServerHandlers.Userinfo.cs:line 166
at OpenIddict.Server.OpenIddictServerProvider.DispatchAsync[TContext](TContext context) in /_/src/OpenIddict.Server/OpenIddictServerProvider.cs:line 54
at OpenIddict.Server.OpenIddictServerProvider.DispatchAsync[TContext](TContext context) in /_/src/OpenIddict.Server/OpenIddictServerProvider.cs:line 52
at OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandler.HandleRequestAsync() in /_/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandler.cs:line 65
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
解决方案
[ExpirationDate] [nvarchar](max) NULL, [CreationDate] [nvarchar](max) NULL
您的架构无效:日期不应存储在NVARCHAR
列中。考虑DATETIMEOFFSET (7)
改用。
推荐阅读
- dictionary - 为什么地图上的迭代是随机的?
- java - 我的代码收到 ArrayIndexOutOfBoundsException。这个设置正确吗?
- testing - 是否可以在不使用 NPM 的情况下使用自定义 TestCafé 浏览器提供程序?
- java - 为什么在 Java 8 中删除了 HashMap 的 indexFor 方法
- rest - Spring-boot Web发送回显响应,每隔一个请求
- wordpress - 如何为网站创建 Green lock SSL 证书?
- python - WTF 表单不验证
- angular - 如何在单个中获取多个复选框值
- spring - Kafka Consumer 处理后推送记录到 S3 的可能测试场景
- r - 如何在 x 和 y 坐标中绘制水平(水平图)?