c# - 尝试设置 SignalR 时找不到 UseSignalR 或 UseEndpoints
问题描述
我正在尝试在我的 asp.net core 2.2 解决方案中设置 signalR。
我正在按照本指南进行操作,并且已经到了在我的启动文件中的配置函数中添加此配置方法的步骤:
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ChatHub>("/chathub");
});
但问题是,我的 app 对象为 no ùseendpints
。经过一番搜索,我可以看到曾经使用过的东西UseSignalR
被用来代替ùseendpints
:
app.UseSignalR(routes =>
{
routes.MapHub<SomeHub>("/path");
});
然而,两者都UseSignalR
没有。
我能找到的唯一听起来有用的东西是UseMiddleWare
.
然后我尝试复制我应该从文档中采取的步骤:
app.UseMiddleware(endpoint =>
{
endpoint.MapHub
});
但这根本不起作用。端点没有名为“MapHub”的字段。
我不知道该怎么做,为什么我不能按照文档进行操作?
我的整个启动文件如下所示:
using System.Diagnostics.CodeAnalysis;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Builder;
using Seges.SC.Feature.Personalization.Services;
using Seges.SC.Foundation.ApplicationInitialization.Initialization;
namespace Seges.SC.Feature.Personalization.Initialization
{
[SuppressMessage(
"UnusedCode",
"CA1812:Never instantiated",
Justification = "Instantiated through reflection/dependency injection")]
[SuppressMessage(
"ReSharper",
"UnusedMember.Global",
Justification = "Instantiated through reflection/dependency injection")]
internal class PersonalizationInitializer : BaseApplicationInitializer
{
public override string Name => nameof(PersonalizationInitializer);
public override void RegisterDependencies(IServiceCollection services)
{
services.AddTransient<ICurrentUserService, CurrentUserService>();
services.AddSignalRCore();
}
public void Configure(IApplicationBuilder app)
{
app.UseMiddleware(endpoint =>
{
endpoint.MapHub
});
}
}
}
解决方案
推荐阅读
- c++ - 从向量 C++ 计算字符串中的字母数
- reactjs - 从组件推断道具时缺少属性
- go - 可安全用于并发使用的旋转计数器
- generics - 如何在 dart 中创建具有通用返回类型的方法
- javascript - React Native如何将多个状态变量从onClick子发送到父类中的方法
- c - C中printf语句中char和说明符的加法/减法
- python - 试图将我的 dict 代码保存到 .csv 文件
- excel - 用零替换列单元格中的公式值和空白
- python - 在 Tweepy 中遇到 Python 打印语法错误
- javascript - 如何引用作为功能组件的样式组件?