c# - por - "El valor no puede ser nulo" al pasar argumentos nulos al proxy del lado del cliente de SignalR
signalr.client c# (2)
Usando SignalR (v2.0.2) obtengo esta excepción:
Value cannot be null.
Parameter name: o
at Newtonsoft.Json.Utilities.ValidationUtils.ArgumentNotNull(Object value, String parameterName)
at Newtonsoft.Json.Linq.JToken.FromObjectInternal(Object o, JsonSerializer jsonSerializer)
at Newtonsoft.Json.Linq.JToken.FromObject(Object o, JsonSerializer jsonSerializer)
at Microsoft.AspNet.SignalR.Client.Hubs.HubProxy.Invoke[T](String method, Object[] args)
Estoy llamando al HubProxy con reflexión, y estoy pasando algunos argumentos nulos que están desencadenando este error (también conocido como, algunos elementos en el Object[] args
son nulos). Sin embargo, pasar nulo por un argumento a un método es algo perfectamente legítimo. ¿Es esto un error en SignalR en el sentido de que intenta serializar parámetros nulos o es un error en Json.NET (v6.0.1) en el sentido de que no debe intentar serializar un objeto nulo?
Puede intentar anular el método de invocación de los concentradores SignalR
, por ejemplo: personalice Microsoft.AspNet.SignalR.AuthorizeAttribute
siguiente manera:
public override bool AuthorizeHubMethodInvocation(IHubIncomingInvokerContext hubIncomingInvokerContext, bool appliesToMethod)
{
}
Luego, antes de invocar, puede verificar su solicitud y realizar algún procesamiento si es necesario.
Resulta que se trata de un error conocido en SignalR que se ha corregido y se incluirá en la próxima versión 2.2.1. Vea su boleto aquí .