Blazor(WASM)和Web-Api分别进行项目调试



调试blazor web程序集项目时遇到问题。

设置:

  • WASM Blazor UI项目
  • 引用WASM项目的Web API项目
  • 它们共享同一个端口
  • 我只启动Web API项目,还可以访问blazor网站。(这对我来说很奇怪(

我的WebApi项目中有这两行。

app.UseWebAssemblyDebugging();

app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});

启动设置Web API:

"API": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"launchUrl": "",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}

启动设置Blazor WASM:

"Lab.Web": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}

当我试图在Blazor项目中的某个地方设置断点时。我收到这个消息:

"当前不会命中断点。尚未为此文档加载任何符号">

如果我单独运行Blazor项目,我不会收到这个消息,但我无法访问我的Web API。

在调试WASM项目的同时,为Web API和Blazor WASM共享同一端口的正确方法是什么??

ps:如果这有帮助的话,我正在使用VS Studio 16.9.3。

非常感谢你的帮助!

我假设:

  1. 您在AspNetCore而不是IIS中运行该项目
  2. 您将API服务器项目作为启动项目
  3. 您处于调试模式
  4. 您的设置类似于ASPNetCore模板上承载的Web程序集

您唯一需要inspectUri的地方是在LaunchSettings.json中。json在API项目中,这是您没有它的地方。

当在调试模式下启动时,它可能很难启动,所以给它时间。

最新更新