无法在 program.main Blazor Client wasm 中命中断点
Can't hit breakpoint in program.main Blazor Client wasm
创建一个基本的 Blazor 应用程序,我正在尝试调试我的应用程序的 main/start 方法。
主要是检查我正在注入的对象,主要是从 appsettings.json.
获取配置
我还在 lauchSettings.json 中添加了浏览器调试的 json 设置,但没有成功。
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
我检查了 google 但与 Program.Main() 断点相关的解决方案并不多。
有什么建议吗?
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5001/") });
builder.Services.AddScoped<DashboardDataService>();
builder.Services.AddScoped<TrTradingSignalBotApiService>();
builder.Services.AddTelerikBlazor();
await builder.Build().RunAsync();
}
}
更新:The documentation that describes this
好吧,这很难看,但大概您只希望一次性使用它,所以只需等待几秒钟 - 对于我的桌面,2 秒就足够了 - 它让调试器有时间进行附加。一旦找到适合您的延迟,它就会起作用。
注意,我无法让 Debugger.IsAttached
或 Debugger.Break()
工作,所以你必须在编辑器中设置断点。
将延迟包装在 #if DEBUG...#endif
中,以确保您不会在适当的时候发布。
public class Program
{
public static async Task Main(string[] args)
{
#if DEBUG
await Task.Delay(2000);
#endif
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5001/") });
builder.Services.AddScoped<DashboardDataService>();
builder.Services.AddScoped<TrTradingSignalBotApiService>();
builder.Services.AddTelerikBlazor();
await builder.Build().RunAsync();
}
}
创建一个基本的 Blazor 应用程序,我正在尝试调试我的应用程序的 main/start 方法。 主要是检查我正在注入的对象,主要是从 appsettings.json.
获取配置我还在 lauchSettings.json 中添加了浏览器调试的 json 设置,但没有成功。
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
我检查了 google 但与 Program.Main() 断点相关的解决方案并不多。 有什么建议吗?
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5001/") });
builder.Services.AddScoped<DashboardDataService>();
builder.Services.AddScoped<TrTradingSignalBotApiService>();
builder.Services.AddTelerikBlazor();
await builder.Build().RunAsync();
}
}
更新:The documentation that describes this
好吧,这很难看,但大概您只希望一次性使用它,所以只需等待几秒钟 - 对于我的桌面,2 秒就足够了 - 它让调试器有时间进行附加。一旦找到适合您的延迟,它就会起作用。
注意,我无法让 Debugger.IsAttached
或 Debugger.Break()
工作,所以你必须在编辑器中设置断点。
将延迟包装在 #if DEBUG...#endif
中,以确保您不会在适当的时候发布。
public class Program
{
public static async Task Main(string[] args)
{
#if DEBUG
await Task.Delay(2000);
#endif
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5001/") });
builder.Services.AddScoped<DashboardDataService>();
builder.Services.AddScoped<TrTradingSignalBotApiService>();
builder.Services.AddTelerikBlazor();
await builder.Build().RunAsync();
}
}