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