问题标签 [hosted-blazor-webassembly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
102 浏览

blazor - 框架 DLL 的 Blazor 完整性错误,一个子域有效,另一个无效

我有两个代码完全相同的 blazor 应用程序,一个在 url 上运行,https://subdomain1.domain.com另一个在https://subdomain2.domain.com

这些应用程序是托管的 blazor webassembly。他们坐在nginx后面。subdomain1 在端口 5001 上运行,而 subdomain2 在 4001 上运行。

尽管代码完全是彼此的副本,但一个有效,另一个给出了完整性错误。

我看到请求进入并在 nginx 日志中传递

我无法弄清楚为什么一个子域会给出框架 DLL 的完整性错误,而另一个没有,因为有人遇到过这样的事情?

0 投票
0 回答
52 浏览

asp.net-core - Blazor WebAssembly - 如何添加不需要重新编译或重建项目的新 *.razor 页面

我正在开发一个调查项目,该项目使用 Blazor WebAssemly 为客户端从客户端收集数据。每个调查表都有不同的设计和编辑检查规则。所以我决定当我创建一个新的调查表时,应用程序会自动生成一个新的 *.razor 页面,例如 page.razorClientSurvey.razor页面。一切正常,直到我将 Web 应用程序导航到ClientSurvey.razor我刚刚创建的应用程序。系统显示错误:

404 未找到。

我必须再次重建项目,它可以ClientSurvey.razor在我的网站上显示页面。
使用 ASP.NET MVC 之前,当我添加新的 aspx 页面时,我不必重新构建项目。它是否仍然适用于 Blazor WebAssembly?如果是,我怎样才能更改剃须刀页面,它可以在我的网站上自动更新,而无需重建或重新编译?

而且我还遇到一个问题,当我在 IIS 中部署项目时,我看不到 UI (.*razor) 页面的存储位置,我知道它们被编译为 dll。如何以与 ASP.NET 相同的方式将它们保存在原始文件中?使用 ASP.NET,当我在 IIS 中部署它时,总是有一个文件夹来存储aspx页面。

更新:请看图更清楚 在此处输入图像描述

0 投票
0 回答
87 浏览

azure-web-app-service - 如何使应用程序 ID URI 格式正常工作

我无法让任何应用程序 ID URI正常工作。我有一个 Blazor WebAssembly 托管应用程序,用 ASP.NET Core 5.0 编写。使用api://<appId>格式很好,但是这与 Terraform 不兼容。我可以让我的客户使用 与服务器交谈api://<appId>,所以我知道代码工作正常。当我交换应用程序 ID URI 以使用任何其他格式(例如https://<verifiedCustomDomain>/<string>or api://<tenantId>/<string>)时,我收到 401 错误。我正在使用经过验证的 Azure AD 域。

我可以看到这<string>意味着“主机或 api 路径段的字符串值。”,但我不确定这意味着什么。我一直在测试<string>设置为我的应用服务的名称以及应用注册的名称。我还尝试将应用程序注册从单租户更改为多租户(以防万一)。

任何建议将不胜感激。

0 投票
1 回答
1213 浏览

blazor - Visual Sstudio 2022 Current 中的热重载不适用于现有的 Blazor 应用程序

在使用 VS 2022 预览版进行了几次迭代后,我将其删除并在 VS 2022 Current 可用时安装了它。

现有的 Blazor 托管应用程序不会在文件保存或按下热重载按钮时热重载。它在预览版本中重新加载“很好”。我是否在调试或不调试的情况下运行它都没有关系。

使用新安装的版本创建的新应用程序会进行热重载。

我在 *.csproj 或 launchSettings.json 文件中看不到任何重要的区别。他们都针对net6.0。我还删除了 .vs 目录并清理了解决方案。

唯一的区别是我的项目在新的应用程序模板中使用 Program.cs 和 Startup.cs 与仅 Program.cs 相比,但这并不重要。或者,是吗?

是什么阻止了 Visual Studio 热重新加载现有应用程序?

更新

切换到单个 Program.cs 和 WebApplication 构建器确实有所帮助。现在热重载无需调试即可工作。通过调试 VS 说它应用了更改,但它们没有应用到屏幕上。

我仍然想知道为什么需要进行此更改以及如何在调试时启用热重载?

0 投票
1 回答
118 浏览

authentication - 为 Blazor 授权动态添加策略声明

我正在为内部授权目的创建身份验证和授权处理程序。我的目的是让我的同事可以轻松地将解决方案实施到他们自己的项目中。我们使用 Azure AD 进行身份验证,我们使用 Azure 组进行授权。为了做到这一点,我觉得我被困在弄清楚如何以有效的方式添加授权策略上。

现在,我在 Blazor webassembly 托管配置中的客户端项目的 Program 类中通过官方描述的方式添加它:

这很好用,但并不直观,因为任何给定的项目都可能需要几种不同的策略

我还添加了一个自定义授权策略提供程序,如 Microsoft 的本文档中所述:

https://docs.microsoft.com/en-us/aspnet/core/security/authorization/iauthorizationpolicyprovider?view=aspnetcore-6.0

根据他们对本文档的描述,尤其是文档中的前几行,我认为这就是我要寻找的东西。但是如果没有手动添加每个策略,我似乎仍然无法让它按预期工作。

如果需要,我可以展示我的授权策略提供程序的自定义实现,但它与 Github 中的文档几乎完全一样。

0 投票
0 回答
33 浏览

docker - 使用 dotnet watch run Dockerize 一个 Blazor WASM 应用程序

我正在尝试对 Blazor WASM 应用程序进行 docker 化,但我想使用 dotnet watch run 为本地开发环境运行该应用程序。

src 代码是默认的 Blazor WASM 模板,我刚刚将项目文件夹移动到 src 文件夹中,这是我正在使用的 dockerfile:

我收到以下错误:

从主机系统运行 dotnet watch run --project "./src/BlazorApp/BlazorApp.csproj" 就像一个魅力

有谁知道问题可能取决于什么?

0 投票
1 回答
54 浏览

blazor - 在单个解决方案中创建多个 WebAssembly 项目

请参阅这个问题的上下文 和 MrC aka Shaun Curtis 的回答

这个问题是关于我过去试图解决但没有取得巨大成功的事情。您是否熟悉 我曾经下载并运行过的这个示例。那没起效。然后我意识到我必须将基本 url 添加到浏览器地址栏中的 url 中才能运行第一个项目,例如:https://localhost: 44302/FirstApp即 Client 项目。而对于 SecondClient 它应该是https://localhost: 44302/SecondApp. 这正是MrC aka Shaun Curtis的示例应用程序的工作方式,尽管他添加了一个 Razor Pages 应用程序来提供重定向到四个项目的菜单。

我试图做的没有取得多大成功的是让第一个托管的 WebAssemby 前端项目成为默认项目;那是当我运行应用程序时,或者在地址栏中https://localhost: 44302.输入如果我输入https://localhost: 44302/FirstApp,我会看到我添加到解决方案中的第一个独立 WebAssembly 项目。第二个项目,第三个项目,以此类推,都是 WebAssembly 项目。我做不到:当我运行默认项目时,一切都很好......我可以在项目范围内导航,路由到 Counter 页面、FetchData 页面等。

但是,当我在地址栏中的 url 添加分段 /FirstApp 并按 Enter 键时,路由器会显示消息“对不起,此地址没有任何内容”。而不是导航到由基本 url /FirstApp/ 表示的项目

这里有人知道如何实现我正在寻找的请求功能吗?