【发布时间】:2023-12-28 20:18:01
【问题描述】:
blazor 项目(.net 标准 2.1)
-
Microsoft.AspNetCore.Components.WebAssembly 3.2.1
-
Microsoft.AspNetCore.Components.WebAssembly.Build 3.2.1
-
Microsoft.AspNetCore.Components.WebAssembly.DevServer 3.2.1
-
Microsoft.AspNetCore.Http.Connections.Client 3.1.6
-
Microsoft.AspNetCore.SignalR.Client 3.1.6
-
Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson 3.1.6
-
System.Net.Http.Json 3.2.1
@code{
private HubConnection HC;
protected override async Task OnInitializedAsync(){
HC = new HubConnectionBuilder().WithUrl("http://localhost:4000/class").Build();
HC.On<string>("TextMessage", Message => Console.WriteLine(Message));
await HC.StartAsync();
await base.OnInitializedAsync();
}
}
登录 chrome 控制台:
asp.net core 服务器:(.net core 3.1)
public class Startup {
public Startup(IConfiguration configuration) {
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services){
services.AddSingleton<ClassHub>();
services.AddSignalR(o => {
o.MaximumReceiveMessageSize = null;
o.EnableDetailedErrors = true;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
app.UseEndpoints(endpoints => {
endpoints.MapHub<ClassHub>("/class", options => {
options.TransportMaxBufferSize = 256000;
options.ApplicationMaxBufferSize = 256000;
});
});
}
}
【问题讨论】:
-
日志顶部:System.InvalidOperationException:找不到类型“Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionFactory”的合适构造函数。确保类型是具体的,并且为公共构造函数的所有参数注册了服务。
-
我在不修改任何代码的情况下修复了这个问题,首先删除所有引用和剃须刀文件,不包括 web 程序集、http.json 、主布局和索引页面;然后将它们添加回来排除 Microssoft.AspNetCore.Http.Connections.Client 因为我不需要类 HttpConnectionFactory;问题已解决,但不知道为什么。
-
我也有同样的问题。它发生过一次,但在重新加载页面后它起作用了,所以我认为这只是一些随机错误,但是,在第二次发布后,问题再次出现但并没有消失......到目前为止没有好的解决方案。
-
@ZoyuJ - 如何在没有 Microsoft.AspNetCore.Http.Connections.Client 包的情况下添加 SignalR?它是 SignalR 的依赖项
标签: c# asp.net-core signalr blazor-client-side