Skip to content

Blazor SSR chooses RemoteNavigationManager or HttpNavigationManager unpredictably #50260

Open
@SteveSandersonMS

Description

@SteveSandersonMS

Current behavior:

  • If you don't have AddServerComponents(), then your SSR components will use HttpNavigationManager
  • If you do, then both SSR and interactive (server) components will use RemoteNavigationManager

Expected:

  • Regardless of service registrations, the DI scope for SSR components should use HttpNavigationManager while the DI scope for interactive (server) components should use RemoteNavigationManager

Or in other words, SSR components currently select between the two implementations based on an entirely unrelated fact (whether or not your app is configured to support interactive server components), which is problematic.

This shouldn't currently impact the developer experience or behavior. However it might do, since the two implementations are quite different, and might vary behavior. This was actually the root cause of bug #49670, in the sense that E2E tests said the feature already worked, but that was only true for apps with AddServerComponents().

Longer term we should avoid the risk of inconsistency and similar bugs by ensuring we always use the SSR service for SSR scopes.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions