Blazor服务器应用程序在部署时不工作,在Visual Studio中工作正常

Blazor服务器应用程序在部署时不工作,在Visual Studio中工作正常,blazor,blazor-server-side,Blazor,Blazor Server Side,我有一个Blazor服务器端项目,我一直在VisualStudio2019中使用.NET5进行开发。一切都很顺利 我刚刚将该站点部署到一个测试服务器上(该服务器上已经运行了两个这样的站点,因此我知道服务器拥有运行该站点所需的一切),但是Blazor的东西似乎都不起作用。具体地说 点击按钮没有任何作用 单击链接将刷新整个页面,而不仅仅是呈现新的HTML 授权似乎被忽略,因此任何人都可以看到带有[Authorize]属性的页面 不知道要显示什么代码,因为在VS中运行时所有代码都能正常工作。以下是

我有一个Blazor服务器端项目,我一直在VisualStudio2019中使用.NET5进行开发。一切都很顺利

我刚刚将该站点部署到一个测试服务器上(该服务器上已经运行了两个这样的站点,因此我知道服务器拥有运行该站点所需的一切),但是Blazor的东西似乎都不起作用。具体地说

  • 点击按钮没有任何作用
  • 单击链接将刷新整个页面,而不仅仅是呈现新的HTML
  • 授权似乎被忽略,因此任何人都可以看到带有
    [Authorize]
    属性的页面
不知道要显示什么代码,因为在VS中运行时所有代码都能正常工作。以下是
App.razor

<CascadingAuthenticationState>
  <Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
      <AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
        <NotAuthorized>
          <RedirectToLogin />
        </NotAuthorized>
      </AuthorizeRouteView>
    </Found>
    <NotFound>
      <AuthorizeView>
        <Authorized>
          <LayoutView Layout="@typeof(MainLayout)">
            <NotFound />
          </LayoutView>
        </Authorized>
        <NotAuthorized>
          <RedirectToLogin />
        </NotAuthorized>
      </AuthorizeView>
    </NotFound>
  </Router>
</CascadingAuthenticationState>
非登录用户不应访问的页面在代码隐藏中用
[Authorize(Roles=“Admin”)]
修饰,或在
.razor
文件中用
@属性[Authorize(Roles=“Admin”)]
修饰

有人知道我做错了什么吗?如果我能提供更多信息,请告知。谢谢


更新我刚刚尝试将站点部署到同一服务器上的另一个域,运行正常。我还尝试将另一个站点指向此站点的文件夹,但效果很好(因此不是部署的文件),然后将此站点指向另一个的文件夹,但没有效果。因此,网站本身似乎有问题,但我不知道它与另一个网站是什么样子。

结果表明,问题与我的代码和服务器上的网站设置无关。我使用Cloudflare,并将其设置为缩小HTML。这将删除Blazor工作所必需的两个HTML注释。有关更多信息,请参阅


因此,如果您正在使用Cloudflare,请务必将其设置为缩小JavaScript和CSS,但不要缩小HTML。

结果表明,问题与我的代码以及服务器上的站点设置无关。我使用Cloudflare,并将其设置为缩小HTML。这将删除Blazor工作所必需的两个HTML注释。有关更多信息,请参阅


因此,如果您使用Cloudflare,请务必将其设置为缩小JavaScript和CSS,但不要缩小HTML。

如果您在Windows服务器上运行,请检查服务器上的事件查看器。或类似的其他操作系统。这会让你对这个问题有一个更全面的了解。您应该会收到错误。@Marius否,事件查看器中没有任何与此站点相关的内容。还有其他想法吗?谢谢你怎么了,阿芙罗翰?您的代码有一些问题,可能与您似乎面临的主要问题无关。我想在处理琐事之前,你首先需要确保你的应用程序现在运行良好。@enet你好。不,代码本身运行良好。请查看我问题的更新。感谢您的跟进,@avrohmyisroel。请将您的解决方案从问题的顶部移动到下面的新答案中。鼓励自我回答!另外,请随意接受您自己的答案。如果您在Windows服务器上运行,请检查服务器上的事件查看器。或类似的其他操作系统。这会让你对这个问题有一个更全面的了解。您应该会收到错误。@Marius否,事件查看器中没有任何与此站点相关的内容。还有其他想法吗?谢谢你怎么了,阿芙罗翰?您的代码有一些问题,可能与您似乎面临的主要问题无关。我想在处理琐事之前,你首先需要确保你的应用程序现在运行良好。@enet你好。不,代码本身运行良好。请查看我问题的更新。感谢您的跟进,@avrohmyisroel。请将您的解决方案从问题的顶部移动到下面的新答案中。鼓励自我回答!还有,请随意接受你自己的答案。你是一个传奇。@kylewhittingtonhee,如果可以的话!我们现在要做的就是说服微软找到一种更好的方法,将Blazor数据包含在页面中。你是一个传奇。@KyleWhittington-Hee,如果可以的话!我们现在要做的就是说服微软找到一种更好的方法,在页面中包含Blazor数据。
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web