【问题标题】:Publish Blazor wasm and ASP.NET WebApi发布 Blazor wasm 和 ASP.NET WebApi
【发布时间】:2021-07-18 14:02:30
【问题描述】:

我们在客户端-服务器架构中有 Blazor WasmASP.NET 5 Web API

首先,我们分别发布每个项目的客户端(Blazor)和服务器(WebApi)。 我们有两个不同的文件夹,一个用于客户端,另一个用于服务器。

Client:
---wwwroot
---web.config
Server:
---runtimes
---wwwroot
---some dll and server files
---web.config

如果将2个文件夹组合在一起发布到服务器上,依赖web.config,只有我们可以有客户端或服务器应用程序!

如何在服务器上发布这2个文件夹?

【问题讨论】:

  • 什么服务器以及您是如何配置站点/应用程序/虚拟目录的?
  • 您是在问“我如何在同一个站点上托管 Web API 和 WASM”?
  • 我查看了很多关于wasm和webapi发布过程的文章,但我的错在于我的项目解决方案。我的解决方案是为 2 个独立的项目设计的,不能在一台服务器上发布,我通过更改解决方案来解决这个问题。谢谢老兄。
  • only we can have Client or Server app 没有。你发布了Server 应用程序,你得到了两者。服务器应用程序也将提供客户端文件
  • @mRizvandi I check out many articles 你查看文档了吗? Blazor WASM 上的 Getting Started 示例展示了如何创建和使用托管解决方案。 my solution designed for 2 separate projects, 默认模板也会创建两个独立的项目

标签: asp.net-core blazor publish blazor-webassembly


【解决方案1】:

我的回答可能会为其他人节省时间。

首先,我们有两种类型的 Blazor Wasm、Web API 项目:

1.完整的独立项目。

在这种情况下,Client 和 Server 完全分离并分别发布在两个不同的服务器(或两个不同的 url)上。每个项目都有web.config,相互之间没有冲突。

2。半独立项目。

在这种情况下,我们有两个独立的项目;客户端和服务器,但我们的客户端是服务器的一部分!什么?!是的,它是服务器的一部分,我们在服务器上有一个客户端参考(VS2019 上的 Blazor Wasm 项目模板的普通类型)。现在,没有两个不同的项目,我们只发布有客户端的服务器。好的。没有很多 web.config,没有很多项目,项目的 web.config 之间没有任何冲突。

【讨论】:

  • 这回答了什么问题?如果您有托管的 WASM 解决方案,则发布服务器项目也会发布已编译的客户端文件。 Server 项目可以包含任何类型的内容 - Razor 页面、Web API、OData、GraphQL。默认情况下,它有 Razor Pages(用于错误页面)和 Web API(WeatherForecast 控制器)
  • 这在文档和入门文档中有记录。文档实际上解释说,由于 CORS,您将无法直接调用 REST API,因此您必须配置 CORS 以允许特定的客户端调用。这在Call a web API from ASP.NET Core Blazor 中有解释
猜你喜欢
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
相关资源
最近更新 更多