【发布时间】:2014-02-17 02:47:22
【问题描述】:
以下是我在两个不同页面上使用的客户端代码:
<script src='<%= Page.ResolveUrl("~/resources/js/jquery-1.6.4.min.js") %>' type="text/javascript"></script>re
<script type="text/javascript">
jQuery.noConflict();
</script>
<script src='<%= Page.ResolveUrl("~/resources/js/jquery.signalR-1.2.0.min.js") %>' type="text/javascript"></script>
<script src='<%= Page.ResolveUrl("~/signalr/hubs") %>' type="text/javascript"></script>
<script type="text/javascript">
jQuery(function () {
// Declare a proxy to reference the hub.
var usr = jQuery.connection.notificationHub;
jQuery.connection.hub.logging = true;
jQuery.connection.hub.qs = "clientId=arif";// +readCookie("personId");
jQuery.connection.hub.start().done(function () {
});
usr.client.showUsersOnLine = function (data) {
};
});
</script>
在一个页面上它已连接并且工作正常,但在另一个页面上它给了我以下错误:
[ArgumentException: Could not cast or convert from System.String to System.Collections.Generic.IEnumerable`1[Microsoft.AspNet.SignalR.Hubs.HubDispatcher+ClientHubInfo].]
Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType) +241
Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType) +123
Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) +238
[JsonSerializationException: Error converting value "[{"name": "notificationhub"}]" to type 'System.Collections.Generic.IEnumerable`1[Microsoft.AspNet.SignalR.Hubs.HubDispatcher+ClientHubInfo]'. Path '', line 1, position 35.]
Microsoft.Owin.Host.SystemWeb.Infrastructure.<>c__DisplayClass1.<GetRethrowWithNoStackLossDelegate>b__0(Exception ex) +27
Microsoft.Owin.Host.SystemWeb.Infrastructure.ErrorState.Rethrow() +34
Microsoft.Owin.Host.SystemWeb.CallContextAsyncResult.End(IAsyncResult result) +49
Microsoft.Owin.Host.SystemWeb.OwinHttpHandler.EndProcessRequest(IAsyncResult result) +7
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9628972
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
我看到的唯一区别是: 在调用协商 utl 时,“connectionData”参数是不同的: 对于其工作方式如下的页面:
connectionData [{"name":"notificationhub"}]
对于它不工作的页面看起来像:
connectionData "[{\"name\": \"notificationhub\"}]"
谁能建议我实际上缺少什么或应该检查什么?
【问题讨论】:
-
您找到解决方案了吗?
-
是连续打开两个页面失败还是某个特定页面一直都失败?
-
我得到了同样的结果。每次连接数据被双重转义时都会失败
标签: jquery asp.net json signalr