【发布时间】:2021-04-02 14:16:08
【问题描述】:
我正在尝试将我的控制台应用程序移植到 Blazor 应用程序。在控制台类型项目中一切正常,但它不在 Blazor 项目中,所以我正在尝试排除故障。该应用程序从同一解决方案中的单独“类库”类型项目中调用一些东西。
但故障排除过程本身也存在问题。经过一番困惑后,我意识到在引用的类库类型项目的代码中设置的断点没有被命中。
检查控制台,我看到它给出了错误:
L: Unable to insert breakpoint at FtxApi.FtxWebSocketApi/<Test>d__5:MoveNext ():15
我需要做些什么(项目设置或其他东西)才能让调试器点击这些?还是暂时不支持?
现在我只是使用很多Console.Writeline 作为一种解决方法/替换。而且我注意到引用的类库类型项目中的Console.Writelines 正在被调用..但仅限于来自第三方包的某个方法调用。执行似乎从那一点返回(之后没有调用任何内容)。不确定那里出了什么问题 - 需要进行更多故障排除,这使我们回到了没有触发的断点(理想情况下我可以利用它们)。
我知道 Blazor 是新的(而且我是使用它的绝对初学者),所以并不是所有东西都需要或将是完美的。我出于好奇而询问断点(我想让它们工作,但没什么大不了的)。
我真正想要了解的是:代码看似停止执行/返回到那个特定的方法调用可能会发生什么?我调用的方法是WebSocket.Open(),来自包WebSocket4Net。如上所述,我之前已经测试过这个(在控制台应用程序中)并且它运行良好,所以我猜它与我不熟悉的 Blazor 有某种关系。我不确定如何获取更多信息来帮助调试此问题。任何帮助表示赞赏。
编辑:
我设法在不使用诸如断点之类的调试工具的情况下找到了解决问题的方法(我只是经常使用 Console.Writeline)。我猜 Blazor 不支持某些 websocket 实现之类的,因为我发现了这个错误:System.PlatformNotSupportedException: Operation is not supported on this platform. blazor.webassembly.js:1 at System.Net.Sockets.Socket 来自websocket.Open()。我设法通过实现 System.Net.Websockets 来让它工作,类似于this。虽然我的故障排除已经结束(目前),但我仍然想知道是否可以在其他引用的项目中使用断点。
【问题讨论】:
标签: visual-studio visual-studio-2019 blazor visual-studio-debugging blazor-client-side