【发布时间】:2014-02-21 23:50:51
【问题描述】:
昨天我开始开发 SignalR 应用程序 - 我创建了 2 个不同的项目(服务器和客户端),一切顺利。
今天,我再次打开它 - 现在它引起了问题。
这是我的客户端代码:
signalrHub.client.updateVehicle = function (dbVehicle) {
$.each(Vehicles, function() {
var vehicle = this;
if (vehicle.id == dbVehicle.id && vehicle.dataset == dbVehicle.dataset) {
vehicle.move(dbVehicle.latitude, dbVehicle.longitude);
}
});
};
$.connection.hub.url = "http://localhost:52522/signalr";
signalrHub = $.connection.routeHub;
$.connection.hub.start().done(function() {
signalrHub.server.joinDataset("JR");
signalrHub.server.getVehicles("JR").done(function (response) {
$.each(response.vehicles, function() {
Vehicles.push(new Vehicle(this));
});
$.each(Vehicles, function() {
this.addToMap();
});
}).fail(function(error) {
alert(error);
});
});
调用失败处理程序,出现以下错误: 无法加载文件或程序集“Newtonsoft.Json,Version=6.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
我已尝试将 Newtonsoft.Json 更新到 6.0 - 但在查找 4.5 版本时出现编译错误。
这是服务器端的 GetVehicles:
public async Task<Vehicles> GetVehicles(string dataset)
{
var vehicles = await Vehicles.GetData(dataset, DateTime.Today, DateTime.Today.AddDays(1));
Clients.Caller.updateVehicle(vehicles.Data.First());
return vehicles;
}
这是失败的那一行:
Clients.Caller.updateVehicle(vehicles.Data.First());
如果我删除它 - 该方法将一直执行到最后,并且客户端超时并且永远不会收到 Vehicles 对象。
【问题讨论】:
标签: c# .net json json.net signalr