超链接未加载页面但显示已选中

Hyperlinks not loading page but showing selected

ASP,net core3.0 服务器端 Blazor 应用程序。在页面中选择一个 link 后。所选页面不会加载,但名称会显示在地址栏中。我必须在浏览器中单击“刷新”才能加载页面。

我尝试将主页 links 从“”更改为“/”,最后将第二个页面指令添加到“/Home”的主页并添加了它。

一切都在开发环境中加载得很好。但在 Azure 中,它的反应是这样的。

导航菜单与模板相同,我什至离开了天气页面,因为我想稍后实际使用它。

<div class="top-row pl-4 navbar navbar-dark">
    <a class="navbar-brand" href="/">
        <h1 id="Title">SHOP LIVE</h1>
        <h6 id="Title">Version 2.0</h6>
    </a>
    <button class="navbar-toggler" onclick="@ToggleNavMenu">
        <span class="navbar-toggler-icon"></span>
    </button>
</div>

<div class="@NavMenuCssClass" onclick="@ToggleNavMenu">
    <ul class="nav flex-column">
        <li class="nav-item px-3">
            <NavLink class="nav-link" href="/Home" Match="NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Repair Orders
            </NavLink>
        </li>
        <li class="nav-item px-3">
            <NavLink class="nav-link" href="/ShopMap">
                <span class="oi oi-map-marker" aria-hidden="true"></span> Shop Map
            </NavLink>
        </li>
        <li class="nav-item px-3">
            <NavLink class="nav-link" href="fetchdata">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Weather
            </NavLink>
        </li>
    </ul>
</div>

@functions {
    bool collapseNavMenu = true;

    string NavMenuCssClass => collapseNavMenu ? "collapse" : null;

    void ToggleNavMenu()
    {
        collapseNavMenu = !collapseNavMenu;
    }
}

---更新---

我收到错误:

cannot send data if the connection is not in the 'connected' state

在浏览器控制台中。我是在 Google 上找到这个的,但每个人都说这是在以前的预览版本中修复的。

Server-side Blazor 使用 web-sockets(通过 SignalR)进行服务器和浏览器之间的通信。

Azure 默认禁用 Web 套接字 web-apps,我认为这就是您的浏览器无法连接到服务器的原因。

转到您的 Azure 应用程序配置以启用网络套接字。

文档:Publish an ASP.NET Core SignalR app to Azure App Service