我在这里找到了一个实现Identity的客户端Blazor应用程序。
它工作正常,但当我把它转到服务器端Blazor时,它会抛出一个错误:
"引发异常:System.Private.CoreLib.dll中的System.InvalidOperationException"("SPA默认页面中间件无法返回默认页面'/index.html',因为找不到它,并且没有其他中间件处理该请求。"(在CsrfTokenCookieMiddleware第28行。
我真的不知道问题出在哪里。我猜出现错误是因为当使用服务器端Blazor时,更多的逻辑被移交给服务器项目而不是客户端项目,并且服务器不包含wwwroot。因此,我创建了一个从服务器项目的wwwroot到客户端项目的wwwroot的符号链接。但这也没有奏效。
有人能帮我解决这个问题吗?我完全被卡住了。创造者也不知道问题出在哪里
使用blazor进行服务器端渲染时,不使用blazor.webassembly.js来引导应用程序,而是使用blazor.server.js。
在wwwroot文件中的index.html文件中,如下所示
<script src="_framework/blazor.webassembly.js"></script>
我检查了给定的GitHub repo,发现了上面的脚本标记。将其设置为如下所示并尝试,
<script src="_framework/blazor.server.js"></script>
blazor的服务器端渲染不在asp.net核心主机上运行的web程序集中运行,而是通过信号R与UI线程进行通信。这是blazor服务器端渲染和客户端渲染的主要区别。