我已经将Blazor WASM项目.net 5项目升级为.net 6。
Blazor.Server项目被设置为启动WebApi项目,其中包含所有的Blazor.Client代码。
但是,在升级之后,当我试图运行该项目时,在cmd输出中会出现以下错误;
请求完成HTTP/1.1获取https://localhost/_framework/debug/ws-proxy?browser=ws%3A%2F%2F127.0.0.1%3A56020%2Fdevtools%2Fbrowser%2F6d6a929b-4e01-4e15-8e7c-e4e19e0bb5c4 ---40400-0.9436
关于我的Blazor.Server项目;
Microsoft.AspNetCore.Components.WebAssembly.Server 6.0.3然后(再次在服务器端项目中)在我添加的Program.cs中;
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpErrorHandlerMiddleware();
app.UseHttpsRedirection();
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();
//app.UseSerilogRequestLogging();
app.UseCors(AllowSpecificOrigins);
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
app.UseRequestLocalization("en-GB");
app.Run();在我的Blazor.Client WASM应用程序中;
Microsoft.AspNetCore.Components.WebAssembly 6.0.3
Microsoft.AspNetCore.Components.WebAssembly.DevServer 6.0.3那么,在Program.cs这里,我有;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
var services = builder.Services;
services.AddBlazoredLocalStorage();
services.AddAuthorizationCore();
services.AddScoped<AuthenticationStateProvider, JwtAuthenticationStateProvider>();
services.AddScoped<IAuthService, AuthService>();
services.AddTransient<TimerService>();
services.AddTransient<MapperService>();
services.AddTransient<GenericMapperService>();
services.AddLogging(b => b
.AddBrowserConsole()
.SetMinimumLevel(LogLevel.Error)
);
services.AddBlazorise(options =>
{
// options.ChangeTextOnKeyPress = true; // optional
})
.AddBootstrapProviders()
.AddFontAwesomeIcons();
builder.Services.AddHttpClientInterceptor();
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-GB");
await builder.Build().RunAsync();这里有人能帮忙吗?我假设VS和已安装的组件包知道如何在blazor运行时进行复制?或者不是这样的?
发布于 2022-03-30 12:53:45
我已经看到了用Blazor升级项目的问题,我不是唯一的一个,到目前为止,最好的工作是在.net6中重新创建这个项目。不知道这是不是你的案子。
参见此2022 wasm blazor.webassembly.js not found .net5 to .net6 upgrade
希望有一个更好的解决办法,并最终会找到。如果你足够耐心,这条线可能会找到答案。
发布于 2022-03-30 15:38:57
如果它对任何人有帮助的话,我最终实现的工作就是单独运行2x项目;
Blazor.Client和Blazor.Api设置为启动。在Blazor.Server项目中
删除包Microsoft.AspNetCore.Components.WebAssembly.Server 6.0.3的
Program.cs删除;app.UseBlazorFrameworkFiles();和endpoints.MapFallbackToFile("index.html");
launchSettings.json以删除inspectUri设置.在Blazor.Client项目中;
5.修改HttpClient基Uri以指向API项目。例如;
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:5001/") });
并确保两个项目都在单独的端口上运行。之后都跑得很顺利。
这不是一个理想的解决方案,因为它意味着两个不同的服务运行,但一个快速的解决办法。
https://stackoverflow.com/questions/71676865
复制相似问题