JC9*_*C97 1 c# serialization signalr asp.net-core
我正在使用 SignalR 传输一些实时数据。我可以完美地连接我的 js 客户端,但是只要我调用一个方法,只有当我使用 signalR 的调试日志时,我就会收到下面的错误(否则它只会Error: Invocation canceled due to the underlying connection being closed.在调用时抛出)。如果我在调用该方法的中心放置断点,他会遍历它,但不知何故我仍然遇到这个隐藏的错误。
dbug: Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher[1]
Received hub invocation: InvocationMessage { InvocationId: "0", Target: "WatchSimulations", Arguments: [ System.Collections.Generic.List`1[System.Guid] ], StreamIds: [ ] }.
Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher: Debug: Received hub invocation: InvocationMessage { InvocationId: "0", Target: "WatchSimulations", Arguments: [ System.Collections.Generic.List`1[System.Guid] ], StreamIds: [ ] }.
dbug: Microsoft.AspNetCore.SignalR.HubConnectionContext[6]
Microsoft.AspNetCore.SignalR.HubConnectionContext: Debug: Failed writing message. Aborting connection.
System.ArgumentNullException: Value cannot be null. (Parameter 'inputType')
at System.Text.Json.JsonSerializer.Serialize(Utf8JsonWriter writer, Object value, Type inputType, JsonSerializerOptions options)
at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.WriteCompletionMessage(CompletionMessage message, Utf8JsonWriter writer)
at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.WriteMessageCore(HubMessage message, IBufferWriter`1 stream)
at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.WriteMessage(HubMessage message, IBufferWriter`1 output)
at Microsoft.AspNetCore.SignalR.HubConnectionContext.WriteCore(HubMessage message, CancellationToken cancellationToken)
Failed writing message. Aborting connection.
Microsoft.AspNetCore.SignalR.HubConnectionHandler: Debug: OnConnectedAsync ending.
System.ArgumentNullException: Value cannot be null. (Parameter 'inputType')
Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport: Debug: Waiting for the client to close the socket.
at System.Text.Json.JsonSerializer.Serialize(Utf8JsonWriter writer, Object value, Type inputType, JsonSerializerOptions options)
at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.WriteCompletionMessage(CompletionMessage message, Utf8JsonWriter writer)
at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.WriteMessageCore(HubMessage message, IBufferWriter`1 stream)
at Microsoft.AspNetCore.SignalR.Protocol.JsonHubProtocol.WriteMessage(HubMessage message, IBufferWriter`1 output)
at Microsoft.AspNetCore.SignalR.HubConnectionContext.WriteCore(HubMessage message, CancellationToken cancellationToken)
dbug: Microsoft.AspNetCore.SignalR.HubConnectionHandler[6]
OnConnectedAsync ending.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[7]
Waiting for the client to close the socket.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[2]
Socket closed.
Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport: Debug: Socket closed.
Run Code Online (Sandbox Code Playgroud)
中心:
[Authorize]
public class ProgressHub : Hub<IProgressHub>
{
public Task WatchSimulations(List<Guid> simulationUids)
{
var tasks = new List<Task>();
simulationUids.ForEach(id =>
{
tasks.Add(
Groups.AddToGroupAsync(Context.ConnectionId, id.ToString())
);
});
return Task.WhenAll(tasks);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 .NET Core 3.1 和 @microsoft/signalr 5.0.0。
有人认识这个问题吗?
谢谢!
小智 6
如果您从 3.1 项目引用 System.Text.Json 5.0,则可能会发生此错误。3.1.11 将包含对此的修复。目前,您可以避免更新 System.Text.Json,将应用程序升级到 net5.0,或者改用 Newtonsoft.Json 而不是 System.Text.Json。
| 归档时间: |
|
| 查看次数: |
2313 次 |
| 最近记录: |