Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

05- Checkout Without Validation - Server Side Validation throws error #360

Open
jeremyZX opened this issue Mar 8, 2023 · 2 comments
Open

Comments

@jeremyZX
Copy link

jeremyZX commented Mar 8, 2023

I'm following the guides in sequence, and I think I've discovered an issue somewhere.

When following the guides in sequence, 05-checkout-with-validation.md's Adding server-side validation section says I should be able to recompile and submit an order with a blank delivery address, and receive a 400 error. I'm receiving a 500 error: System.NotSupportedException: Metadata for type 'Microsoft.AspNetCore.Mvc.ValidationProblemDetails' was not provided by TypeInfoResolver of type 'BlazingPizza.OrderContext'. If using source generation, ensure that all root types passed to the serializer have been indicated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically..

The full 500 error is below.

I can repro this by opening up the 05-checkout-with-validation checkpoint, and deleting the client-side validation components from AddressEditor.razor and Checkout.razor and submitting a blank form.

I'm running this in Visual Studio 2022 17.5.1.

System.NotSupportedException: Metadata for type 'Microsoft.AspNetCore.Mvc.ValidationProblemDetails' was not provided by TypeInfoResolver of type 'BlazingPizza.OrderContext'. If using source generation, ensure that all root types passed to the serializer have been indicated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
   at System.Text.Json.ThrowHelper.ThrowNotSupportedException_NoMetadataForType(Type type, IJsonTypeInfoResolver resolver)
   at System.Text.Json.JsonSerializerOptions.GetTypeInfoInternal(Type type, Boolean ensureConfigured, Boolean resolveIfMutable)
   at System.Text.Json.JsonSerializer.GetTypeInfo(JsonSerializerOptions options, Type inputType)
   at System.Text.Json.JsonSerializer.SerializeAsync(Stream utf8Json, Object value, Type inputType, JsonSerializerOptions options, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Duende.IdentityServer.Hosting.IdentityServerMiddleware.Invoke(HttpContext context, IEndpointRouter router, IUserSession session, IEventService events, IIssuerNameService issuerNameService, IBackChannelLogoutService backChannelLogoutService) in /_/src/IdentityServer/Hosting/IdentityServerMiddleware.cs:line 102
   at Duende.IdentityServer.Hosting.MutualTlsEndpointMiddleware.Invoke(HttpContext context, IAuthenticationSchemeProvider schemes) in /_/src/IdentityServer/Hosting/MutualTlsEndpointMiddleware.cs:line 94
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Duende.IdentityServer.Hosting.DynamicProviders.DynamicSchemeAuthenticationMiddleware.Invoke(HttpContext context) in /_/src/IdentityServer/Hosting/DynamicProviders/DynamicSchemes/DynamicSchemeAuthenticationMiddleware.cs:line 47
   at Duende.IdentityServer.Hosting.BaseUrlMiddleware.Invoke(HttpContext context) in /_/src/IdentityServer/Hosting/BaseUrlMiddleware.cs:line 27
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)

HEADERS
=======
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: close
Content-Length: 407
Content-Type: application/json; charset=utf-8
Host: localhost:44381
Referer: https://localhost:44381/checkout
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
sec-ch-ua: "Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"
sec-ch-ua-platform: "Windows"
sec-ch-ua-mobile: ?0
origin: https://localhost:44381
sec-fetch-site: same-origin
sec-fetch-mode: cors
sec-fetch-dest: empty

  Microsoft Visual Studio Community 2022
  Version 17.5.1
  VisualStudio.17.Release/17.5.1+33424.131
  Microsoft .NET Framework
  Version 4.8.04084
  
  Installed Version: Community
  
  Visual C++ 2022   00482-90000-00000-AA838
  Microsoft Visual C++ 2022
  
  ADL Tools Service Provider   1.0
  This package contains services used by Data Lake tools
  
  ASA Service Provider   1.0
  
  ASP.NET and Web Tools   17.5.317.37931
  ASP.NET and Web Tools
  
  Azure App Service Tools v3.0.0   17.5.317.37931
  Azure App Service Tools v3.0.0
  
  Azure Data Lake Tools for Visual Studio   2.6.5000.0
  Microsoft Azure Data Lake Tools for Visual Studio
  
  Azure Functions and Web Jobs Tools   17.5.317.37931
  Azure Functions and Web Jobs Tools
  
  Azure Stream Analytics Tools for Visual Studio   2.6.5000.0
  Microsoft Azure Stream Analytics Tools for Visual Studio
  
  C# Tools   4.5.0-6.23123.11+271ccd71554f7d28d2f90551aafd0bdeb5d327aa
  C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
  
  Common Azure Tools   1.10
  Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
  
  Cookiecutter   17.0.22336.2
  Provides tools for finding, instantiating and customizing templates in cookiecutter format.
  
  Microsoft Azure Hive Query Language Service   2.6.5000.0
  Language service for Hive query
  
  Microsoft Azure Stream Analytics Language Service   2.6.5000.0
  Language service for Azure Stream Analytics
  
  Microsoft Azure Tools for Visual Studio   2.9
  Support for Azure Cloud Services projects
  
  Microsoft JVM Debugger   1.0
  Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
  
  Node.js Tools   1.5.50105.3 Commit Hash:882de61a7c99ae988d4c62029301292a3e0b1d56
  Adds support for developing and debugging Node.js apps in Visual Studio
  
  NuGet Package Manager   6.5.0
  NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/
  
  Python - Django support   17.0.22336.2
  Provides templates and integration for the Django web framework.
  
  Python - Profiling support   17.0.22336.2
  Profiling support for Python projects.
  
  Python with Pylance   17.0.22336.2
  Provides IntelliSense, projects, templates, debugging, interactive windows, and other support for Python developers.
  
  Razor (ASP.NET Core)   17.5.2.2307502+8b3141d86b738daf2ca3ed9c15b12513071fc676
  Provides languages services for ASP.NET Core Razor.
  
  SQL Server Data Tools   17.2.40118.0
  Microsoft SQL Server Data Tools
  
  ToolWindowHostedEditor   1.0
  Hosting json editor into a tool window
  
  TypeScript Tools   17.0.20105.2003
  TypeScript Tools for Microsoft Visual Studio
  
  Visual Basic Tools   4.5.0-6.23123.11+271ccd71554f7d28d2f90551aafd0bdeb5d327aa
  Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
  
  Visual F# Tools   17.5.0-beta.23053.5+794b7c259d9646a7eb685dad865aa27da7940a21
  Microsoft Visual F# Tools
  
  Visual Studio IntelliCode   2.2
  AI-assisted development for Visual Studio.
  
  ZenCoding   1.2.20
  Provides ZenCoding for the HTML Editor - full support for static HTML, Razor and WebForms.
@nerem
Copy link

nerem commented Mar 19, 2023

Had the same issue and the same fix as in #358 solved it for me.

@wolfinator
Copy link

#358 fix does nothing for me and I have the same error as @jeremyZX

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants