gpt4 book ai didi

asp.net-core - 在 kestrel 中托管 blazor wasm asp.net core 托管应用程序

转载 作者:行者123 更新时间:2023-12-04 15:04:54 25 4
gpt4 key购买 nike

我在托管 blazor wasm asp.net core hosted 时遇到问题应用..解决方案有3个项目:客户 , 已分享 , 和 服务器 .
当我运行命令时 dotnet publish --configuration Release它将库发布到它们各自的解决方案文件夹中,如下所示:

  • WebWorkbench3\客户\bin\Release\net5.0\publish
  • WebWorkbench3\服务器 \bin\Release\net5.0\publish
  • ...

  • 我认为,因为 server项目正在引用 client - 那么我托管应用程序的步骤如下:
  • 开通 WebWorkbench3\Server\bin\Release\net5.0\publish在 powershell 中
  • 运行命令 dotnet .\WebWorkbench3.Server.dll

  • enter image description here
  • 导航至:https://localhost:5001/
  • 结果:
  • 预期:客户页面打开
  • 实际:页面卡在“正在加载..”字符串中。在控制台中我们看到关于 _framework/blazor.webassembly.js 的错误没有被加载。

  • enter image description here
  • 如果我们检查 wwwroot服务器应用程序中的文件夹内容我们将看到以下内容:

  • enter image description here
    所以这解释了为什么会显示错误。但是我现在的问题是 - 项目中的发布过程/配置是否应该处理 复印客户的 wwwroot内容进入服务器的应用程序输出目录?如果我们在 VisualStudio 中启动调试 session ,那么我们使用 server作为启动点,所以项目应该知道在哪里查找 blazor.webassembly.js文件在..
    enter image description here
    那么为什么在发布过程中没有发生同样的过程呢?
    注:我能够通过手动复制客户的 wwwroot 来解决这个问题。目录并将内容放入服务器的 wwwroot目录......但我认为这不是服务应该如何工作?
    编辑:我刚刚尝试设置 client IIS 中的 blazor 应用程序。它有效。的种类。页面打开。但是当它尝试向服务器发出 REST GET 请求时 - 它使用相同的 hostname:port组合。因此,如果我的应用托管在 mysite.local:50001 上那么对 API 的请求将类似于 mysite.local:50001/data/loadall哪里 data是 Controller 名称和 loadall是 Action 名称..所以基本上客户端使用与服务器相同的基地址..问题是我无法在与客户端相同的端口上启动服务器!尝试这样做 - 您将看到以下输出:
    enter image description here
    所以基本上我有和以前一样的问题 - 如何托管在客户端和服务器之间拆分的 wasm 应用程序?我很确定我可以通过强制客户端使用非标准服务器端口并为 server 提供服务来使其工作。该端口上的一部分.. 但是,我相信当前配置(blazor wasm 模板中的默认配置)以这种方式配置应该是有原因的,因此应该可以以某种方式运行该项目,而无需进行任何其他更改。

    最佳答案

    那么这将是一个自我回答......而不是在解决方案级别发布(dotnet publish --configuration Release)应用程序 - 在项目级别发布......

  • 之前 ..\repos\WebWorkbench3\WebWorkbench3
  • ..\repos\WebWorkbench3\WebWorkbench3\Server

  • 在 1 种情况下,编译器不复制 _framework文件夹(可能还有一些其他文件)放入 wwwroot .. 正确发布服务器后,您可以使用 dotnet .\WebWorkbench3.Server.dll 访问该应用程序命令。

    关于asp.net-core - 在 kestrel 中托管 blazor wasm asp.net core 托管应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66368013/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com