我有一个启用了消息包协议的信号器应用程序。当连接到我的集线器的客户机启用了消息包时,一切正常,当我调用一个客户机(禁用了消息包)方法作为参数传递一个包含对象列表的对象时,消息包无法抛出一个异常消息:
找不到匹配的构造函数。type:newtonsoft.json.linq.jproperty
stacktrace显示这个异常是通过用signalr设置的redis后平面引发的
microsoft.aspnetcore.signalr.protocol.messagepackhubprotocol.getmessagebytes(hubmessage message)位于microsoft.aspnetcore.signalr.redis.internal.redisprotocol.writeserializedhubmessage(stream stream,在microsoft.aspnetcore.signaler.redis.internal.redisprotocol.writeinvocation(string methodname,object[]args,ireadonlylist)上序列化hubmessage消息 1 excludedConnectionIds) at Microsoft.AspNetCore.SignalR.Redis.RedisHubLifetimeManager
1.sendgroupexceptasync(字符串groupname,字符串methodname,object[]args,ireadonlylist`1 excludedConnectionId,cancellationtoken cancellationtoken)
下面是我如何使用signalr添加message pack和redis:
services.AddSignalR((options) =>
{
options.MaximumReceiveMessageSize = 5242880;
options.EnableDetailedErrors = true;
})
.AddRedis(Configuration.GetConnectionString("RedisCache"))
.AddNewtonsoftJsonProtocol()
.AddMessagePackProtocol();
我已尝试将自定义解析程序添加到消息包,但无法解决此问题是否有人遇到过此问题?或者有人有解决办法吗?
暂无答案!
目前还没有任何答案,快来回答吧!