首页 > 解决方案 > 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)

标签: openiddict

解决方案


[ExpirationDate] [nvarchar](max) NULL, [CreationDate] [nvarchar](max) NULL

您的架构无效:日期不应存储在NVARCHAR列中。考虑DATETIMEOFFSET (7)改用。


推荐阅读