通过命令行运行 Blazor Hosted 应用程序

3
我有一个使用 Blazor 托管的应用程序,包括客户端(WebAssembly)、服务器和共享项目(来自 WebAssembly 托管模板)。在 Visual Studio 中运行良好,但我不知道如何从命令行运行它。我已经尝试过以下方法:
  1. dotnet run(从解决方案、根项目和服务器项目目录)
  2. 从服务器项目的 netcoreapp3.1 目录下运行 Visual Studio 构建的 exe
  3. 从服务器项目的 netcoreapp3.1 目录下以 dll 形式运行(使用 dotnet 命令)
  4. 2 和 3 两种方式,但是从发布目录中运行
所有尝试都失败了。有没有人知道我该如何从命令行运行它?我想将它推送到 Cloud Foundry,但是不知道如何运行它。

1
这帮了我解决了问题...我正要把堆栈跟踪放到我的问题中,再次阅读它时,我突然意识到问题出在哪里。是我代码中愚蠢的开发与发布错误导致的。 - BrianM
从标准模板输出来看,它运行良好。您是否添加了任何授权相关的代码? - H H
没有复现 - 在这里运行得很好。 - H H
我明白了!我在浏览器的开发工具中看到一个错误,它找不到Blazorapp.shared.pdb。我尝试在我的Edge Dev浏览器中设置Blazor客户端调试,现在可能需要PDB文件。在Chrome中打开网站,现在它可以正常工作了。谢谢! - BrianM
我今天也遇到了这个问题,所以我添加了一个希望是最终答案的解决方案。 - Ryan Lundy
显示剩余5条评论
2个回答

2
在.NET 5上,我成功地使用dotnet run启动了我的Blazor客户端应用程序。
cd C:\path\to\source\server
dotnet run

应该会显示类似于现在监听 https://localhost:5001的内容,并且您应该可以在浏览器中导航到该位置。

如果无法正常工作,则可能需要配置SSL证书。我不得不将此"Key"部分添加到我的appsettings.json中。请注意,这适用于发布和发行版本 - 更多信息在这里

  "IdentityServer": {
    "Clients": {
      "BlazorApp.Client": {
        "Profile": "IdentityServerSPA"
      }
    },
    "Key": {
        "Type": "Store",
        "StoreName": "My",
        "StoreLocation": "CurrentUser",
        "Name": "CN=localhost"
      }
  },

您可以使用ls命令查看您的证书。

ls Cert:\CurrentUser\My\{thumbprint}

只需使用制表符自动完成即可找到路径。


1
在Windows命令提示符中,可以通过以下方式创建托管的Blazor应用程序(即具有Blazor客户端部分和服务器Web API部分的应用程序):
md NameOfYourApp

cd NameOfYourApp

dotnet new blazorwasm --hosted

这将在NameOfYourApp文件夹下创建一个带有客户端、服务器和共享文件夹的Blazor应用程序。

在客户端或服务器文件夹中使用dotnet run无法正常工作。相反,要从命令行运行您的应用程序,请运行构建时创建的Server.exe文件:

dotnet build

cd Server\bin\Debug\net5.0

NameOfYourApp.Server.exe

(如果您不切换到.exe文件所在的目录,您的应用程序将无法找到appsettings.json文件。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接