-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Improve Blazor reconnection experience after the server is restarted #64732
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR improves the Blazor reconnection experience when the server restarts by restoring the automatic page reload behavior that existed in .NET 9. The changes ensure that when a circuit cannot be resumed (e.g., because the server restarted and the circuit state is no longer available), the page automatically reloads instead of requiring manual user intervention.
Key Changes
- Modified server-side ComponentHub to return null instead of sending a client error when circuit state is unavailable during resume, allowing client-side reconnection logic to handle the rejection gracefully
- Updated client-side reconnection handlers to automatically reload the page when resume is rejected by the server
- Improved reconnection UI to avoid flickering between "reconnect" and "pause" states during automatic reconnection attempts
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Components/Server/src/ComponentHub.cs | Removed error notification to client when circuit state is unavailable, returning null instead to allow graceful handling by client reconnection logic |
| src/Components/Web.JS/src/Platform/Circuits/DefaultReconnectionHandler.ts | Removed unnecessary pause state transition during reconnection, calling rejected() directly when resume fails |
| src/Components/Web.JS/src/Platform/Circuits/DefaultReconnectDisplay.ts | Updated error message and button visibility for resume failures; changed rejected resume to call rejected() instead of failed() |
| src/Components/Web.JS/src/Platform/Circuits/UserSpecifiedDisplay.ts | Added remote field tracking and updated to pass remote flag in resume-failed events; changed reconnect default to true |
| src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Layout/ReconnectModal.razor | Updated resume button visibility and error message to show retry option |
| src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Layout/ReconnectModal.razor.js | Added modal close before reload on rejection; changed exception handling in resume to show failed state instead of reloading |
...mplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Layout/ReconnectModal.razor.js
Show resolved
Hide resolved
...mplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Components/Layout/ReconnectModal.razor.js
Outdated
Show resolved
Hide resolved
|
/backport to release/10.0 |
|
Started backporting to |
|
@oroztocil backporting to git am output$ git am --3way --empty=keep --ignore-whitespace --keep-non-patch changes.patch
Applying: Improve Blazor reconnection experience after server restart
Applying: Update CannotResumeAppWhenPersistedComponentStateIsNotAvailable to reflect change in ResumeCircuit
Applying: Revert a minor UI change
Applying: Add E2E tests to check reconnection behavior without server state
Using index info to reconstruct a base tree...
M src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsStartup.cs
Falling back to patching base and 3-way merge...
Auto-merging src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsStartup.cs
CONFLICT (content): Merge conflict in src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsStartup.cs
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0004 Add E2E tests to check reconnection behavior without server state
Error: The process '/usr/bin/git' failed with exit code 128 |
javiercn
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
|
/ba-g failure to download gradle added issue opened as KBE |
1 similar comment
|
/ba-g failure to download gradle added issue opened as KBE |
…ha (#64742) * Fix post actions for Razor Class Library template The Razor Class Library template has an option, `SupportsPagesAndViews` that causes it to produce one of two sets of files. If true, then `Areas/MyFeature/Pages/Page1.cshtml` is created. If false, then `Component1.razor` is created. The issue with the previous template is that the set of primary outputs and the corresponding `openInEditor` post-actions were not taking this option into account, and were always trying to open the `Page1.cshtml` file, even if it didn't exist on disk. This led to the bug described in microsoft/vscode-dotnettools#2489 C# Dev Kit has been patched to not show warnings when a template specifies that non-existent files should be opened. With the change here, users creating this template will now see the correct file opened. This applies both to VS and CDK. * Give each postAction a unique id * [Blazor] Accept blazor.web.js startup options format in blazor.server.js and blazor.webassembly.js (#64629) * Accept blazor.web.js startup options format in blazor.server.js and blazor.webassembly.js * Update README.md (#59191) * Update README.md Fixing SDK link. * Update README.md * Update README.md --------- Co-authored-by: William Godbe <[email protected]> * Fix circular reference resolution for schemas containing arrays (#64109) * OpenAPI schemas: Add failing test for circular references with an array * Fix array circular references. The fix is done by registering components before going deep into the recursion tree (where the leaves would be registered first). Fixing this revealed an issue for default values for "local" attributes. Local attributes/parameter info should not apply to componetized schemas. * Fix build warnings * Fix missing negation * Cleanup some funky logic * Fix cases where the schemas will not be componetized because the x-schema-id is null or empty * Stop ResolveReferenceForSchema when the schema has already been resolved * Remove unused method `CreateReference` * Remove OpenApiSchemaKey as only the Type property was used * Remove unnecessary using * Fix punctuation in comment. * Refactor null check in AddOpenApiSchemaByReference * Fix schemaId to be null instead of string.Empty when a schema is not componetized * Remove x-ref-id metadata as it isn't used anymore (and gave undesired results) * fix handle leak (#59959) * Set IExceptionHandlerFeature on DeveloperExceptionPageMiddleware (#52688) * [Blazor] Remove obsolete APIs from Components (#62755) * Remove [Obsolete] APIs from Components * Fix sign-out validation logic to not fail when HistoryEntryState is null Co-authored-by: javiercn <[email protected]> --------- Co-authored-by: Javier Calvarro Nelson <[email protected]> Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: javiercn <[email protected]> * Avoid running many Linux job variants on PR (#64717) * Include a warning about host spoofing in xml (#63174) * Resolve concurrency with test stub to resolve #49745. (#63299) * Improve Blazor reconnection experience after the server is restarted (#64732) * Improve Blazor reconnection experience after server restart * Update CannotResumeAppWhenPersistedComponentStateIsNotAvailable to reflect change in ResumeCircuit * Revert a minor UI change * Add E2E tests to check reconnection behavior without server state * Fix typos * Add missing hiding of buttons in DefaultReconnectDisplay * Initial plan * Add missing Reference elements to csproj files Added Microsoft.AspNetCore.Http.Abstractions, Microsoft.AspNetCore.Http.Features, Microsoft.Extensions.Features, and Microsoft.AspNetCore.Hosting.Server.Abstractions references to projects that need them after dependency updates. Co-authored-by: wtgodbe <[email protected]> * Add more missing Reference elements Added references to Microsoft.AspNetCore.Authentication.csproj and Microsoft.AspNetCore.Server.IISIntegration.csproj Co-authored-by: wtgodbe <[email protected]> * Add Microsoft.AspNetCore.Http.Abstractions to middleware and MVC projects Added references to multiple middleware projects (CookiePolicy, RequestDecompression, HeaderPropagation, HttpsPolicy, WebSockets, ResponseCaching, ResponseCompression), MVC.Core, and SignalR Http.Connections. Co-authored-by: wtgodbe <[email protected]> * Add Http.Features and Routing.Abstractions references Added Microsoft.AspNetCore.Http.Features to CORS and Http.Results, and Microsoft.AspNetCore.Routing.Abstractions to Http.Results to resolve LinkGenerator type issues. Co-authored-by: wtgodbe <[email protected]> * Add missing references to Rewrite, StaticFiles, HealthChecks, Authorization.Policy, ResponseCompression, and IISIntegration Added Microsoft.AspNetCore.Http.Abstractions, Microsoft.AspNetCore.Http.Features, and Microsoft.AspNetCore.Authentication.Abstractions to projects that were missing them after dependency updates. Co-authored-by: wtgodbe <[email protected]> * Add missing references to ResponseCaching and SignalR.Core Added Microsoft.AspNetCore.Http.Features to ResponseCaching and Microsoft.AspNetCore.Http.Abstractions to SignalR.Core. Co-authored-by: wtgodbe <[email protected]> * Fix Authentication.Core self-reference Changed Microsoft.AspNetCore.Authentication.Core to correctly reference Microsoft.AspNetCore.Authentication.Abstractions instead of itself. Co-authored-by: wtgodbe <[email protected]> * Add missing references to Kestrel.Core and Hosting Added Microsoft.AspNetCore.Http.Abstractions to Kestrel.Core and Microsoft.AspNetCore.Http.Features to Hosting. Co-authored-by: wtgodbe <[email protected]> * Add missing references to CookiePolicy, HostFiltering, WebSockets, HttpsPolicy, and OutputCaching Added Microsoft.AspNetCore.Http.Features to CookiePolicy, HostFiltering, WebSockets, and OutputCaching. Added Microsoft.AspNetCore.Hosting.Server.Abstractions to HttpsPolicy. Co-authored-by: wtgodbe <[email protected]> * Add missing references to Kestrel.Transport.Quic, Hosting, Authentication, and Http.Connections Added Microsoft.AspNetCore.Http.Features to Kestrel.Transport.Quic, Microsoft.AspNetCore.Hosting.Server.Abstractions to Hosting, Microsoft.AspNetCore.Authentication.Core to Authentication, and Microsoft.AspNetCore.Authentication.Abstractions to Http.Connections. Co-authored-by: wtgodbe <[email protected]> * Make StackTraceHelper tests runtime-agnostic (#64007) * Add missing references to HttpSys and Kestrel Added Microsoft.AspNetCore.Hosting.Server.Abstractions and Microsoft.AspNetCore.Http.Features to HttpSys. Added Microsoft.AspNetCore.Hosting.Abstractions to Kestrel. Co-authored-by: wtgodbe <[email protected]> * Add missing references to TestHost and HttpSys Added Microsoft.AspNetCore.Hosting.Abstractions, Hosting.Server.Abstractions, Http.Abstractions, and Http.Features to TestHost. Added Authentication.Abstractions, Hosting.Abstractions, Http.Abstractions, and WebUtilities to HttpSys. Co-authored-by: wtgodbe <[email protected]> * Add missing references to IIS Added Microsoft.AspNetCore.Authentication.Abstractions, Hosting.Server.Abstractions, and Http.Abstractions to IIS. Co-authored-by: wtgodbe <[email protected]> * Add missing references to StaticAssets, Kestrel, and Mvc.Abstractions Added Http.Abstractions, Http.Features, Routing.Abstractions, and Net.Http.Headers to StaticAssets. Added Hosting.Server.Abstractions to Kestrel. Added Http.Features to Mvc.Abstractions. Co-authored-by: wtgodbe <[email protected]> * Add missing reference to IIS Added Microsoft.AspNetCore.Http to IIS for IHttpActivityFeature. Co-authored-by: wtgodbe <[email protected]> * Add missing references to Mvc.Core and DefaultBuilder Added Http.Features and Authentication.Abstractions to Mvc.Core. Added Hosting.Abstractions, Http.Abstractions, and Routing.Abstractions to DefaultBuilder (Microsoft.AspNetCore). Co-authored-by: wtgodbe <[email protected]> * Add missing reference to Mvc.DataAnnotations Added Microsoft.AspNetCore.Mvc.Abstractions to Mvc.DataAnnotations for validation types. Co-authored-by: wtgodbe <[email protected]> * Add missing references to TestHost and Http.Connections Added Microsoft.AspNetCore.Http to TestHost. Added Microsoft.AspNetCore.Http.Features to Http.Connections. Co-authored-by: wtgodbe <[email protected]> * Add missing reference to HttpLogging Added Microsoft.AspNetCore.Http.Features to HttpLogging for IHeaderDictionary, IHttpResponseBodyFeature, and IHttpUpgradeFeature. Co-authored-by: wtgodbe <[email protected]> * Add missing references to RequestDecompression and Owin Added Microsoft.AspNetCore.Http.Features to RequestDecompression and Owin. Co-authored-by: wtgodbe <[email protected]> * Add missing reference to MiddlewareAnalysis Added Microsoft.AspNetCore.Http.Abstractions to MiddlewareAnalysis for IApplicationBuilder, RequestDelegate, and HttpContext. Co-authored-by: wtgodbe <[email protected]> * Add missing references to AzureAppServicesIntegration and WindowsServices Added Microsoft.AspNetCore.Hosting.Abstractions to both projects for IWebHostBuilder and IWebHost. Co-authored-by: wtgodbe <[email protected]> * Add missing references to Mvc.ApiExplorer, Authentication projects, and Mvc.Formatters.Xml Added references to fix build errors: - Mvc.ApiExplorer: Added Mvc.Abstractions - Authentication.Cookies: Added Http.Abstractions, Net.Http.Headers - Authentication.BearerToken: Added Http.Abstractions, Net.Http.Headers - Authentication.OAuth: Added Http.Abstractions, WebUtilities, Authentication.Abstractions - Mvc.Formatters.Xml: Added Mvc.Abstractions, WebUtilities Co-authored-by: wtgodbe <[email protected]> * Add missing references to 8 projects for additional build error fixes Added Microsoft.AspNetCore.Http references and other missing dependencies: - StaticAssets: Added Http - DefaultBuilder: Added Http - Mvc.Cors: Added Mvc.Abstractions - Mvc.Formatters.Xml: Added Http - Mvc.ApiExplorer: Added Http - Mvc.DataAnnotations: Added Http.Abstractions - Authentication.OAuth: Added Http - Authentication.BearerToken: Added Http Co-authored-by: wtgodbe <[email protected]> * Updates from a local agent. * Remove retrials of fixed tests (#64740) Updated according to https://github.com/dotnet/aspnetcore-internal/issues/4769#issuecomment-3642606696. For these 2 removals we know what fixed it. `CertificateChangedOnDisk` might be lucky to not pass for the last 90 days. Leaving on the list. `CheckInvalidHostingModelParameter` - due to its dependence on deployment, HTTP, event logging I am not 100% sure if we should remove it. It's up to discussion or can be done later when another 90 days of all-green period will be confirmed. * More missing refs. * More. * Adress errors from windows server log. * Fix inux failures caused by `--no-dependencies` * Fix source build issues. * [main] (deps): Bump dotnet/arcade/.github/workflows/backport-base.yml (#64748) Bumps [dotnet/arcade/.github/workflows/backport-base.yml](https://github.com/dotnet/arcade) from 1c09acb26525da819530dd2678a0b7f62c35cbfd to dd6311861abf91f883a5f6aa3b13ff095ed44179. - [Commits](dotnet/arcade@1c09acb...dd63118) --- updated-dependencies: - dependency-name: dotnet/arcade/.github/workflows/backport-base.yml dependency-version: dd6311861abf91f883a5f6aa3b13ff095ed44179 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [main] (deps): Bump dotnet/arcade/.github/workflows/inter-branch-merge-base.yml (#64747) Bumps [dotnet/arcade/.github/workflows/inter-branch-merge-base.yml](https://github.com/dotnet/arcade) from 1c09acb26525da819530dd2678a0b7f62c35cbfd to dd6311861abf91f883a5f6aa3b13ff095ed44179. - [Commits](dotnet/arcade@1c09acb...dd63118) --- updated-dependencies: - dependency-name: dotnet/arcade/.github/workflows/inter-branch-merge-base.yml dependency-version: dd6311861abf91f883a5f6aa3b13ff095ed44179 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * More. * [main] (deps): Bump src/submodules/googletest (#64746) Bumps [src/submodules/googletest](https://github.com/google/googletest) from `1b96fa1` to `065127f`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](google/googletest@1b96fa1...065127f) --- updated-dependencies: - dependency-name: src/submodules/googletest dependency-version: 065127f1e4b46c5f14fc73cf8d323c221f9dc68e dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * More. * Fix CS0012/CS0246 compilation errors. * Fix CS compilation errors partially. * Fix reference name * Fixup * Add missing references to Identity, Mvc.ViewFeatures, and Components.Server Added missing references to fix build errors: - Identity: Added Routing.Abstractions for endpoint routing types - Mvc.ViewFeatures: Added WebUtilities for URL encoding/decoding - Components.Server: Added Http for IHttpActivityFeature and other Http types Co-authored-by: wtgodbe <[email protected]> * Add missing references to 6 projects for additional build errors Added missing references to fix build errors: - Components.WebAssembly.Server: Added Http for IHttpActivityFeature - OpenApi: Added Http for IHttpActivityFeature - GetDocument.Insider: Added Http for IHttpActivityFeature - Identity: Added Extensions.Features for IFeatureCollection - Mvc.ViewFeatures: Added Net.Http.Headers for header types - Components.Server: Added Routing.Abstractions for endpoint routing Co-authored-by: wtgodbe <[email protected]> * Add additional missing references to 4 projects Added missing references to fix remaining build errors: - Components.WebAssembly.Server: Added Http.Features - OpenApi: Added Routing.Abstractions - Components.Server: Added Extensions.Features - Identity: Added Hosting.Abstractions Co-authored-by: wtgodbe <[email protected]> * Fixup * Fixup * Remove taghelpers * Razor * More * A few more * Fixup * Last one? * Nope * Two more * Fixup * 3 more * Three more * Another three * Dos mas * Continue * Mvc * RuntimeCompilation * Add missing references to Identity.UI Added Microsoft.AspNetCore.Http.Abstractions and Microsoft.AspNetCore.Mvc.Abstractions to Identity.UI for Razor Pages types and HTTP context. Co-authored-by: wtgodbe <[email protected]> * Add missing Http references to Mvc projects Added Microsoft.AspNetCore.Http to Mvc.NewtonsoftJson, Mvc, and Mvc.Localization for IHttpActivityFeature and other Http infrastructure types. Co-authored-by: wtgodbe <[email protected]> * Add missing Http references to test projects, samples, and runtime compilation Added Microsoft.AspNetCore.Http and other missing references to Mvc.Razor.RuntimeCompilation and prepared to add references to test projects and samples that need them for IHttpActivityFeature and other types relocated in 11.0.0-alpha. Co-authored-by: wtgodbe <[email protected]> * Fix tests, samples * A few more * Add missing Http references to Components test server projects Added Microsoft.AspNetCore.Http to Components.TestServer, ThreadingApp.Server, and HostedInAspNet.Server test projects to fix build errors with IHttpActivityFeature and other Http types relocated in 11.0.0-alpha. Co-authored-by: wtgodbe <[email protected]> * Add submodule checkout to copilot-setup-steps.yml (#64761) * Identity.UI * Final status update - 85+ projects fixed with assembly references Co-authored-by: wtgodbe <[email protected]> * Revert "Final status update - 85+ projects fixed with assembly references" This reverts commit 6bdc4c3. * Fix a few * Fixup * Hosting * Fixup * Http * More fixes * A few more * Mvc.Core * Abstractions * Fixup * Fixup 2 * Routing * No netfx * Samples routing * A few more * mvc.testing * Fixorp * Few fixers * Abstractions * Razor * Whoops * Syntax * Auth * Cleanup * One more * Sample fixes * Mvc samples * ViewFeatures * Fixup * ChatGPT * Again * Samples, testassets * Fixup * Another set * Add missing assembly references to 10 projects for build error fixes Added missing Http, Hosting, Routing, and Features references to fix CS1061, CS0012, CS0234 and CS0246 errors: - MinimalFormSample: Added Hosting.Abstractions, Http.Features - AzureAppServicesHostingStartupSample: Added Http.Features - Components.Tests: Added Http.Abstractions - BlazorServerApp: Added Hosting.Abstractions, Http, Http.Abstractions - BlazorUnitedApp: Added Hosting.Abstractions, Http, Http.Abstractions - Components.Server.Tests: Added Http.Abstractions, Http.Features - HostedBlazorWebassemblyApp.Server: Added Hosting.Abstractions, Http, Http.Abstractions - Wasm.Performance.Driver: Added Hosting.Abstractions, Http Co-authored-by: wtgodbe <[email protected]> * Add missing assembly references to 20 projects for build error fixes Added missing Http, Hosting, Routing references to fix CS1061, CS0012, CS0234 and CS0246 errors: - DefaultBuilder.SampleApp: Added Hosting.Abstractions - Microsoft.AspNetCore.Tests: Already had comprehensive references - CreateDefaultBuilderApp, CreateDefaultBuilderOfTApp: Already had necessary references - DependencyInjectionApp, StartRequestDelegateUrlApp, StartWithIApplicationBuilderUrlApp: Added Hosting.Abstractions - StartRouteBuilderUrlApp: Already had comprehensive references - AspNetCoreAnalyzers.Test: Added Http.Abstractions - Http.Abstractions.Tests, Http.Extensions.Tests, Http.Microbenchmarks: Already had comprehensive references - Routing.FunctionalTests: Added Hosting.Abstractions, Http, Http.Abstractions - Routing.Tests: Already had comprehensive references - RoutingSandbox, MinimalSample: Already had comprehensive references - Identity.Specification.Tests: Added Http - IdentitySample.ApiEndpoints: Added Hosting.Abstractions, Http, Http.Abstractions - IdentitySample.DefaultUI, IdentitySample.Mvc: Added Hosting.Abstractions, Http, Http.Abstractions Co-authored-by: wtgodbe <[email protected]> * Add missing assembly references to 11 projects for build error fixes Added missing Http, Hosting.Abstractions references to fix CS1061, CS0012, CS0234 and CS0246 errors: - IdentitySample.PasskeyConformance: Added Hosting.Abstractions, Http, Http.Abstractions - IdentitySample.PasskeyUI: Added Hosting.Abstractions, Http, Http.Abstractions - CorsMiddlewareWebSite: Added Http, Http.Abstractions - Microsoft.AspNetCore.Diagnostics.Tests: Added Hosting.Abstractions, Http, Http.Abstractions - AutobahnTestApp: Added Http, Http.Abstractions - Microsoft.AspNetCore.Mvc.Test: Added Hosting.Abstractions, Http, Http.Abstractions - MvcFormSample: Added Hosting.Abstractions - MvcSandbox: Added Hosting.Abstractions, Http, Http.Abstractions - Mvc.Core.TestCommon: Added Http - ApiExplorerWebSite: Added Hosting.Abstractions, Http, Http.Abstractions - ApplicationModelWebSite: Added Hosting.Abstractions, Http, Http.Abstractions Note: Other projects in the list (Identity.DefaultUI.WebSite, various Diagnostics samples, OutputCachingSample, ResponseCachingSample, ResponseCompressionSample, RewriteSample, Rewrite.Tests, StaticFiles.FunctionalTests, ResponseCaching.Microbenchmarks, Mvc.Api.Analyzers.Test) already had comprehensive references and did not require additional changes. Co-authored-by: wtgodbe <[email protected]> * Add missing assembly references to 14 MVC test websites and Security samples Added missing Http, Hosting.Abstractions references to fix CS1061, CS0012, CS0234 and CS0246 errors: - HtmlGenerationWebSite: Added Hosting.Abstractions, Http, Http.Abstractions - SimpleWebSite: Added Hosting.Abstractions, Http, Http.Abstractions - RazorBuildWebSite.Views, RazorPagesClassLibrary: Added Http - RazorWebSite: Added Hosting.Abstractions, Http, Http.Abstractions - Mvc.RoutingWebSite: Added Hosting.Abstractions - SecurityWebSite: Added Hosting.Abstractions, Http, Http.Abstractions - SimpleWebSiteWithWebApplicationBuilder: Added Hosting.Abstractions, Http, Http.Abstractions - VersioningWebSite: Added Hosting.Abstractions, Http, Http.Abstractions - XmlFormattersWebSite: Added Hosting.Abstractions, Http, Http.Abstractions - OpenApi.SourceGenerators.Tests: Added Http, Http.Abstractions - Negotiate.Client: Added Hosting.Abstractions, Http, Http.Abstractions - Negotiate.Server: Added Hosting.Abstractions, Http, Http.Abstractions Note: Other projects in the list (Certificate samples, CookieSample, JwtBearerSample, NegotiateAuthSample, MinimalOpenIdConnectSample, Negotiate.FunctionalTest, Negotiate.Test) already had comprehensive references and did not require additional changes. Co-authored-by: wtgodbe <[email protected]> * Add missing assembly references to 20 Security and Server projects Added missing Http, Hosting.Abstractions references to fix CS1061, CS0012, CS0234 and CS0246 errors: - Security samples: ClaimsTransformation, Cookies, CustomAuthorizationFailureResponse, CustomPolicyProvider, DynamicSchemes, Identity.ExternalClaims, PathSchemeSelection, StaticFilesAuth (added Hosting.Abstractions, Http, Http.Abstractions) - Kestrel samples: Http3SampleApp, LargeResponseApp, PlaintextApp, WebTransportInteractiveSampleApp, WebTransportSampleApp, http2cat (added Http) - IIS tests: IIS.FunctionalTests, IIS.LongTests, IIS.NewHandler.FunctionalTests, IISExpress.FunctionalTests (added Hosting.Abstractions, Http, Http.Abstractions) Note: HttpSys.NonHelixTests, IISSample, NativeIISSample, ServerComparison.TestSites, Kestrel.Microbenchmarks, and SignalR.Client.FunctionalTestApp already had comprehensive references and did not require additional changes. Co-authored-by: wtgodbe <[email protected]> * Another set * Several more * Whoopsy * Razor.hosting * More CS * More * Auth * Several more * next round * Additional * Oopsy * Auth in samples * bw * Fix building Microsoft.AspNetCore.Components.E2ETests * Add more references to samples and tests * Add more references to fix tests * Fix trimming tests * Fix Microsoft.AspNetCore.Components.E2ETests * Fix Microsoft.AspNetCore.Components.E2ETests * Fix IStartupInjectionAssemblyName.csproj * Fix Microsoft.AspNetCore.Hosting.TestSites.csproj * Fix Microsoft.AspNetCore.Components.E2ETests * 16337 failures * A few more * Bit more * TestCommon * More mvc * Kestrel * More Kestrel * Fix more trimming tests * TODO-INVESTIGATE: Suppress IL2026/IL3050 in Microsoft.AspNetCore.OpenApi.NativeAotTests Could be a new warning/error with ILC in 11.0, need to compare with 10.0 * Fix Microbenchmarks * Fix more tests * Fix more tests * Fix more tests * NamedPipes * More transports * More transports again * few more * Http * fixup * Few more * Typo * fixup * Signalr & MVC * 3 more * Continue * Few more * Fix more tests * Fix generator tests * Fix more tests * Improve InteropTests to capture failure during process startup Instead of essentially hanging the test when we e.g. don't have the correct shared framework. * Fix compilation * Fix more tests * Update conditions for ProjectReference handling * DataProtection * Undo grpc, more for identity * More * Identity from local * More to website from logs * Fix Mvc test websites * Fix Components test websites * Add Microsoft.AspNetCore.Mvc.TagHelpers reference to Identity.UI * Two more * Fix IIS.Tests --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Drew Noakes <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Joshua Cooper <[email protected]> Co-authored-by: William Godbe <[email protected]> Co-authored-by: Sjoerd van der Meer <[email protected]> Co-authored-by: Anchels <[email protected]> Co-authored-by: Arvin Kahbazi <[email protected]> Co-authored-by: Javier Calvarro Nelson <[email protected]> Co-authored-by: javiercn <[email protected]> Co-authored-by: Aditya Mandaleeka <[email protected]> Co-authored-by: Divyesh Bhandari <[email protected]> Co-authored-by: Zsolt Fehér <[email protected]> Co-authored-by: Ondřej Roztočil <[email protected]> Co-authored-by: wtgodbe <[email protected]> Co-authored-by: Medha Tiwari <[email protected]> Co-authored-by: Ilona Tomkowicz <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexander Köplinger <[email protected]> Co-authored-by: Stephen Halter <[email protected]>
Background
In .NET 10, resuming a Blazor circuit fails when the server has been restarted (and an out-of-process persistent storage is not used). Currently, this is handled on the client side by displaying a "reconnection failed" UI which requires the user to manually reload the page. Previously, in .NET 9 the page would reload automatically once the server has restarted.
Changes
ReconnectModalcomponent used in the Blazor project templateDefaultReconnectDisplayimplementation used in the framework as the fallback when no reconnection UI is found in the user codeComponentHubon the server to not send a client error whenResumeCircuitfails because of unavailable circuit state.ComponentHub.ResumeCircuitto only return a falsy result in the case of unavailable state (similarly to howConnectCircuitindicates rejection), allowing the client-side reconnection logic to react to the rejection by the server properly.DefaultReconnectionHandler.attemptPeriodicReconnectionso that the display does not switch between "reconnect" and "pause" states.ReconnectionModaltemplate. Now the page is reloaded only after server rejection, while normal failure (e.g. network issue) does not reload the page. This brings parity with the default UI.Fixes #64228