SignalR解析值时遇到的意外字符:<

时间:2012-10-04 14:55:53

标签: json asp.net-mvc-4 windows-runtime signalr

我正在使用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是在共享库中定义一些数据传输对象以进行发送。我真的不想这样做,因为它会使我的代码加倍。

3 个答案:

答案 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);