
[英]Need to access client-side label value (Angular directive) on postback…getting {{radioModel || 'null'}} every time
[英]“Value cannot be null” when passing null arguments to SignalR client-side proxy
使用SignalR(v2.0.2)我得到了这个例外:
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)
我正在使用反射调用HubProxy,并且我传入一些触发此错误的空参数(也就是说, Object[] args
中的某些项为null)。 但是,将参数传递给方法的null是完全合法的事情。 这是SignalR中的一个错误,因为它试图序列化空参数,或者它是否是Json.NET(v6.0.1)中的一个错误,因为它不应该尝试序列化一个空对象?
您可以尝试覆盖SignalR
hubs调用方法,例如:自定义Microsoft.AspNet.SignalR.AuthorizeAttribute
如下所示:
public override bool AuthorizeHubMethodInvocation(IHubIncomingInvokerContext hubIncomingInvokerContext, bool appliesToMethod)
{
}
然后在调用之前,您可以检查您的请求并在需要时进行一些处理。
事实证明这是已经修复的SignalR中的已知错误,将包含在即将发布的2.2.1版本中。 在这里看到他们的票。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.