【问题标题】:Understanding Blazor hosting了解 Blazor 托管
【发布时间】:2019-07-02 02:20:21
【问题描述】:

免责声明 我指的是Blazor托管,而不是server-side

在运行browser-hosted Blazor 时,有人可以解释一下,为什么我需要在Server.Startup 中放置扩展名app.UseBlazor<Client.Startup>? 如果Blazor 客户端已经托管在net core project -> Client.Startup 为什么我的Server 项目需要添加这个扩展?

client 不应该与服务器解耦吗?

我在这里遗漏了什么?为什么我的Server 项目需要知道Client,因为我的Client 项目已经是独立的了?

我添加了一张图片。 所以你可以在我的图片中看到,如果服务器通过http 与客户端通信,为什么我需要添加扩展? Blazor 已经在 asp-net-core 中运行,这是 Client 项目,我不对吗?

【问题讨论】:

  • 如果您指的是“独立”blazor 或“asp.net 核心托管”,我不肯定。如果是后者,那么您所指的重点是允许服务器托管客户端 blazor 内容。
  • 详细说明 - 您有一个不错的客户端托管 blazor 应用程序。这很好,但客户端内容如何交付给您的用户?那需要一台服务器。因此,“asp.net 核心托管”。如果您想自己托管纯客户端版本,可以将其部署到 S3 或其他任何地方。但是很多人希望整个交易都在一个解决方案下——因此是后一种模型。
  • 但是client 已经托管在asp-net-coreproject 中,我不正确吗? Client.Startup 是托管Blazor 的服务器的Startup
  • 不...Client.Startup 是在托管进程中运行的。但是您仍然需要一些东西来实际托管它,不是吗?
  • 哦,所以基本上Client.Startup 是使您的.NET 代码编译为wasmthing,而不是托管您的结果wasm 代码的server。现在看看。当你在你的 server 项目中使用 app.UseBlazor<something> 时,你基本上说的是“这个家伙托管了 wasm”。

标签: .net-core client-side blazor


【解决方案1】:

Why does my Server project need to know about the Client since my Client project is already standalone ?

不,您的项目不是独立项目。您的项目包含两个应用程序。只需阅读您自己写的内容。请尝试删除您的服务器项目并运行 Blazor 应用程序。您已经在浏览器中运行了一个前端应用程序 (Blazor)。但是您需要一个应用程序来为 Blazor 应用程序提供服务:在服务器上运行的 ASP.NET Core 应用程序。

Blazor is already running in a asp-net-core which is the Client project am i not right?

据我所知,Blazor 是在 mono webassembly 下运行的。

我建议您阅读 UseBlazor 方法的内容以了解它的作用以及为什么需要它。据我记得它是 Client.Program 而不是 Client.Startup。

【讨论】:

  • 当您创建 blazor 模板时,我指的是独立。(只是客户端项目)
  • @Adrian,这是 Microsoft 名为 Host and deploy Razor Components 的文章的链接:docs.microsoft.com/en-us/aspnet/core/host-and-deploy/…
  • 我从 blazor 开始,对 op 的同一个问题感到好奇。如果您检查客户端版本的文件是否与托管应用程序的客户端相同。我错过了什么?通过独立我认为@BercoviciAdrian 引用它是正确的。客户端版本将在没有托管(服务器)的情况下运行。
  • 从解决方案中删除服务器项目。从 .csproj 中删除 exe 输出。它应该作为客户端 blazor 应用程序运行。
猜你喜欢
  • 2020-09-23
  • 1970-01-01
  • 2019-04-03
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 2020-12-13
相关资源
最近更新 更多