我正在使用WinRT客户端。我尝试发送邮件时收到此异常。
解析值时遇到意外的字符:<。
将对象发送到集线器时,会出现问题,并且未在集线器上定义该对象。该对象是一个Bindable对象(ViewModel)。我不想在Web项目中包含所有属性通知更改内容。
客户代码
return Proxy.Invoke("PlayerUpdate", sessionData);
尝试一个是让集线器接受'对象'参数
public async Task PlayerUpdate(string group, object sessionData)
{
await Clients[group].PlayerUpdate(sessionData);
}
尝试两个是让集线器接受(json)'字符串'参数
public async Task PlayerUpdate(string group, string sessionData)
{
await Clients[group].PlayerUpdate(sessionData);
}
尝试三是预先序列化对象客户端
var str = JsonConvert.SerializeObject(refresh);
return Proxy.Invoke("PlayerUpdate", str);
什么都没有用。计划4是在共享库中定义一些数据传输对象以进行发送。我真的不想这样做,因为它会使我的代码加倍。
答案 0 :(得分:3)
解决。
我的回购项目很好,所以我得出结论,其他事情就是这个问题。
经过一些实验,我发现真正的问题是我的HUB方法中的参数不正确。简单地说,当我的集线器方法只接受1时,我发送了2个参数。
感谢您的兴趣,对此感到抱歉。也许是一个更好的异常消息?
答案 1 :(得分:0)
这似乎是SignalR的一个内部错误,我认为没有人能够在StackOverflow上帮助你。你应该file an issue with the SignalR GitHub project。
答案 2 :(得分:0)
仅当网站网址包含尾随Default.aspx
时,我的客户才会收到此例外。以下内容清理了HubConnection网址参数:
string serverUri = new Uri(HtmlPage.Document.DocumentUri, ".").ToString();
HubConnection connection = new HubConnection(serverUri, true);