.NET 5 SignalR配置时HubOptions找不到ClientTimeoutInterval怎么办
排查步骤
- 确认
ClientTimeoutInterval的配置位置
该属性不属于单个Hub的配置项,是SignalR全局级别的配置,不能在AddHubOptions<T>()的委托里调用,正确的全局配置写法如下:public void ConfigureServices(IServiceCollection services) { services.AddSignalR(options => { // 全局配置客户端超时时间 options.ClientTimeoutInterval = TimeSpan.FromSeconds(30); }); // 单个Hub的配置里没有ClientTimeoutInterval属性 services.AddHubOptions<MyHub>(options => { // 这里只能配置单个Hub的专属选项,比如KeepAliveInterval options.KeepAliveInterval = TimeSpan.FromSeconds(15); }); } - 检查包版本一致性
确保你项目的目标框架为.NET 5.0,所有Microsoft.AspNetCore.SignalR相关的NuGet包版本均为5.x版本,避免跨版本引用导致的属性缺失问题。 - 清理项目缓存
如果版本确认无误仍然找不到该属性,尝试删除项目的bin、obj文件夹后重新生成项目即可。
内容的提问来源于stack exchange,提问作者Natthavat Sukdumrongpreecha
相关产品推荐
相关产品推荐

