标签: blazor-webassembly

Blazor 服务器端与 Blazor WebAssembly 托管

我是 Blazor 新手,正在尝试了解不同托管模型之间的差异。

根据我的阅读,我了解到 Blazor 服务器端和 Blazor WebAssembly Hosted 都有服务器端代码,两者都使用 Signal R 与客户端通信。

那么它们之间有什么区别呢?这些的客户端部署在哪里?他们与Server的连接有什么区别?如果 Web 应用程序依次调用第 3 方 Web API,则调用如何路由?

我发现的一个区别在于项目结构。Blazor 服务器端只有一个项目(带有数据文件夹)。Blazor WebAssembly Hosted 有 3 个项目(.Server、.Client 和 .Shared)。

blazor blazor-server-side blazor-webassembly

42
推荐指数
2
解决办法
4万
查看次数

blazor 服务器端是否有任何热重载?

我只有一个快速的问题。有没有办法热重载 blazor 应用程序?至少,.razor 文件?现在我将我的应用程序托管在本地 IIS(不是 IIS express)上。

我正在浏览互联网,但没有发现任何有用的东西。

谢谢大家的回答:)

c# blazor blazor-server-side blazor-client-side blazor-webassembly

38
推荐指数
4
解决办法
3万
查看次数

Visual Studio 2022 错误“无法启动调试适配器。输出窗口中可能提供其他信息。”

我正在将 Visual Studio 2022 用于 Blazor WebAssembly 项目和 ASP.NET Core API 项目。当我独立运行这些项目时,它们在 Edge、Chrome 浏览器中运行良好,但是当我选择多启动项目时,出现以下错误。


微软视觉工作室

发生一个或多个错误。

无法启动调试适配器。输出窗口中可能会提供其他信息。

操作被取消。

好的

在此输入图像描述

.net asp.net-core blazor-webassembly visual-studio-2022

37
推荐指数
4
解决办法
5万
查看次数

Blazor WASM Net 6 Preview 4 Azure AD - 尝试登录时出错:“无法读取未定义的属性‘toLowerCase’”

我有一个运行 Net 6 Preview 4 的简单 Blazor WASM,我使用本指南进行设置:

https://learn.microsoft.com/en-us/aspnet/core/blazor/security/web assembly/hosted-with-azure-active-directory?view=aspnetcore-6.0

确切的代码与 Net 5.0 完美配合(使用相应的 Net 5.0 程序集)

但是,当我升级到 Net 6 时,我收到以下身份验证错误:

There was an error trying to log you in: 'Cannot read property 'toLowerCase' of undefined'
Run Code Online (Sandbox Code Playgroud)

我似乎也无法获得更多细节。这是在 Azure 应用服务自包含发布上发布的。

在此输入图像描述

代码可以在这里找到: https ://github.com/aherrick/BlazorWASM.Net6Prev4.AzureAD

c# blazor blazor-webassembly .net-6.0

25
推荐指数
1
解决办法
7865
查看次数

Blazor 中的 StateHasChanged() 与 InvokeAsync(StateHasChanged)

我知道调用该StateHasChanged()方法会通知组件状态已更改,因此它应该重新渲染。

但是,我也看到调用await InvokeAsync(StateHasChanged)await InvokeAsync(() => StateHasChanged())在其他人的代码中,但我不太明白它与其他人的代码有何不同StateHasChanged()以及应该在何处选择一个,以及为什么.

我能找到的唯一信息是Blazor 文档的这一部分,它说:

如果必须根据外部事件(例如计时器或其他通知)更新组件,请使用 InvokeAsync 方法,该方法分派到 Blazor 的同步上下文。

我不太明白这个。它只是说“......它调度到 Blazor 的同步上下文”,但我对此不太满意!什么是“Blazor 的同步上下文”?

我试过在 a的事件中调用StateHasChanged()- 而不是InvokeAsync(StateHasChanged)- ,它按预期工作,没有任何问题。我应该打电话吗?!如果是这样,为什么?我觉得这里可能有一些我不知道的重要细微差别。TimerElapsedawait InvokeAsync(StateHasChanged)

我也看到过类似的电话InvokeAsync(() => InvokeAsync(Something)),为什么?

另外,我有时也会看到InvokeAsync()没有调用await,那有什么关系?!

blazor blazor-server-side blazor-webassembly

22
推荐指数
1
解决办法
4983
查看次数

从 MS Blazor Web Assembly 模板解决方案服务器项目中删除 Duende IdentityServer

我刚刚为 .net 6 创建了 Blazor Web Assembly 解决方案,并选择了“个人帐户”和“ASP.NET Core 托管”。

此消息显示在 .Server 项目的 ReadMe.txt 中:

此代码包含对 Duende IdentityServer 的依赖项。这是一个具有互惠许可协议的开源产品。如果您计划在生产中使用 Duende IdentityServer,这可能需要支付许可费。要了解如何使用 Azure Active Directory 作为您的身份,请参阅https://aka.ms/aspnetidentityserver要了解您是否需要 Duende IdentityServer 的商业许可证,请参阅 https://aka.ms/identityserverlicense

因此,看起来 Microsoft 正在为其 Blazor WA TEMPLATE Server 元素使用非常昂贵的商业软件。

首先,在他们的 Blazor 模板中包含商业软件是荒谬的 - 我只能假设他们在切换到“Duende”之前就开始使用它,并且它不再是免费的。

对于大多数仅出于身份目的的项目来说,1000 美元的年费(取决于项目)是不可接受的。

我可以在.Server项目中看到这个包:Microsoft.AspNetCore.ApiAuthorization.IdentityServer

如果我删除它,我认为我已经从项目中删除了 Duende 商业软件的所有痕迹?

另外,是否有任何方法可以使用不使用商业软件(或 Microsoft Identity Platform)的服务器元素(用于身份验证等)来模板化 Blazor Web Assembly 项目。

例如,在服务器上使用 .net Core Identity 进行身份验证就可以了 - 但我猜这不作为模板存在?

谢谢。

blazor blazor-server-side blazor-webassembly

21
推荐指数
0
解决办法
2871
查看次数

没有可用于指定 RuntimeIdentifier 'browser-wasm' 的 Microsoft.AspNetCore.App 运行时包

尝试使用Microsoft 提供的本指南从 ASP.NET Core 3.1 迁移到 5.0 。

安装了带有运行时的 SDK 5.0.100-rc.1。按照指南更新项目,但仍然出现以下错误:

There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'
Run Code Online (Sandbox Code Playgroud)

项目文件:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <UserSecretsId>*****</UserSecretsId>
    </PropertyGroup>
...
Run Code Online (Sandbox Code Playgroud)

找不到与此错误相关的任何内容。我不知道在哪里搜索更多信息。

谢谢你的任何想法。

asp.net-core blazor blazor-client-side blazor-webassembly

19
推荐指数
5
解决办法
6270
查看次数

Blazor 中的状态管理选项

Blazor 中有哪些库/技术可用于 WebAssembly (wasm) 的状态管理。

很高兴了解不同方法的优缺点。

flux redux blazor blazor-webassembly fluxor

18
推荐指数
1
解决办法
1万
查看次数

无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0

我安装了 Visual Studio 2019 16.6.2,以及 .NET Core 3.1.301 SDK 和所有必要的 Blazor 模板。

如果我创建了一个全新的 Blazor WebAssmbly 应用程序,我可以通过按Ctrl+从 Visual Studio 运行它F5,它会在我的活动浏览器窗口中打开一个新选项卡并正常启动。

但是当我按下 时F5,会打开一个新的、单独的浏览器窗口(这有点烦人),但页面会停留about:blank一段时间,直到 Visual Studio 中出现错误消息:

Failed to launch debug adapter.  Additional information may be available in the output window.

Unable to launch browser: 
"Could not open wss://localhost:5001/_framework/debug/ws-proxy?browser=wsAFFlocalhostA50821FdevtoolsFbrowserFceed3b95-58ac-470a-b10c-5d139cfd7117": timeout after 60000ms
Run Code Online (Sandbox Code Playgroud)

Blazor WebAssembly 应用程序是否“托管”并没有什么区别。

我已按照在 ASP.NET Core 中执行 HTTPS 中的步骤进行操作,但这并没有什么区别。

如果在等待about:blank窗口崩溃时,我在浏览器选项卡上手动打开客户端 url,应用程序将加载并命中调试器断点。在短短的一段时间之前,它不断的崩溃,如果我打Shift+ Alt+D总是得到以下错误: …

visual-studio-debugging blazor visual-studio-2019 blazor-client-side blazor-webassembly

16
推荐指数
4
解决办法
6594
查看次数

如何从 Blazor 中的 HttpClients 关闭浏览器控制台中的“信息”日志记录?

在我的 Blazor WebAssembly 客户端中,我有以下应用程序设置:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

那么,为什么在本地运行时,我的浏览器控制台仍然会出现无尽的问题呢?

info: System.Net.Http.HttpClient.MyNamedClientName.ClientHandler[101]
      Received HTTP response headers after 190ms - 200 blazor.webassembly.js:1:9737
info: System.Net.Http.HttpClient.MyNamedClientName.LogicalHandler[101]
      End processing HTTP request after 193ms - 200 blazor.webassembly.js:1:9737
info: System.Net.Http.HttpClient.MyNamedClientName.ClientHandler[101]
      Received HTTP response headers after 267ms - 200 blazor.webassembly.js:1:9737
info: System.Net.Http.HttpClient.MyNamedClientName.LogicalHandler[101]
      End processing HTTP request after 274ms - 200 blazor.webassembly.js:1:9737
info: System.Net.Http.HttpClient.MyNamedClientName.ClientHandler[101]
      Received HTTP response headers after 316ms - 200 blazor.webassembly.js:1:9737
info: System.Net.Http.HttpClient.MyNamedClientName.LogicalHandler[101]
      End processing HTTP request after 319ms - …
Run Code Online (Sandbox Code Playgroud)

c# blazor blazor-webassembly

16
推荐指数
3
解决办法
4517
查看次数