【发布时间】:2021-05-25 00:59:09
【问题描述】:
我有一个使用 .NET5 在 Visual Studio 2019 中开发的 Blazor 服务器端项目。一切正常。
我刚刚将该站点部署到了一个测试服务器(它上面已经运行了两个这样的站点,所以我知道该服务器具有运行该站点所需的一切),但是 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>
_Imports.razor 文件包含所有正确的usings,具体包括...
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
非登录用户不应访问的页面在代码隐藏中使用[Authorize(Roles = "Admin")] 或.razor 文件中的@attribute [Authorize(Roles = "Admin")] 进行修饰。
有人知道我做错了什么吗?请告知我是否可以提供更多信息。谢谢
更新我刚刚尝试将站点部署到同一服务器上的另一个域,并且运行良好。我还尝试将另一个站点指向这个文件夹,它工作正常(所以它不是部署的文件),然后将这个站点指向另一个文件夹,它没有工作。所以,看起来网站本身有问题,但我不知道它看起来像另一个。
【问题讨论】:
-
如果您在 Windows 服务器上运行,请检查服务器上的事件查看器。或类似的其他操作系统。这应该让你对这个问题有一个更大的了解。你应该得到错误。
-
@Marius 不,事件查看器中没有任何与此站点相关的内容。还有其他想法吗?谢谢
-
怎么了,Avrohom?您的代码有一些问题,可能与您似乎面临的主要问题无关。我想您首先需要确保您的应用现在可以正常运行,然后再处理小事。
-
@enet 你好。不,代码本身可以正常工作。请查看我的问题的更新。
-
感谢您的跟进,@AvrohomYisroel。请将您的解决方案从问题的顶部移到下面的新答案中。鼓励自我回答!另外,请随意接受您自己的答案。