SignalR:调用集线器方法时出现内部服务器错误
SignalR: Internal Server Error when calling hub method
我已经用SignalR玩了几天了,我不得不说它是一个绝对非凡的库。我已经设法用它做了一些事情,并对它的简单性感到惊讶,但我最近遇到了一个小问题。
我无法在浏览器中从JavaScript调用Hub方法。请求返回一个500错误代码,当我查看错误页面源时,我看到的是:
[ArgumentNullException: Value cannot be null.
Parameter name: s]
System.IO.StringReader..ctor(String s) +10207225
Newtonsoft.Json.Linq.JObject.Parse(String json) +74
SignalR.Hubs.HubRequestParser.Parse(String data) +78
SignalR.Hubs.HubDispatcher.OnReceivedAsync(IRequest request, String connectionId, String data) +266
SignalR.<>c__DisplayClass6.<ProcessRequestAsync>b__4(String data) +84
SignalR.Transports.ForeverTransport.ProcessSendRequest() +159
SignalR.Transports.ForeverTransport.ProcessRequestCore(ITransportConnection connection) +149
SignalR.Transports.ForeverTransport.ProcessRequest(ITransportConnection connection) +42
SignalR.PersistentConnection.ProcessRequestAsync(HostContext context) +1087
SignalR.Hubs.HubDispatcher.ProcessRequestAsync(HostContext context) +251
SignalR.Hosting.AspNet.AspNetHandler.ProcessRequestAsync(HttpContextBase context) +656
SignalR.Hosting.AspNet.HttpTaskAsyncHandler.System.Web.IHttpAsyncHandler.BeginProcessReques t(HttpContext context, AsyncCallback cb, Object extraData) +143
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9479007
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +178
我的服务器端代码是:
public class SourceHub : Hub
{
public void RegisterSource(string source)
{
Groups.Add(Context.ConnectionId, source);
}
}
在客户端我有:
var SourceHub = $.connection.sourceHub;
$.connection.hub.start().done(function () {
SourceHub.registerSource("test");
});
我已经挖了一段时间了,但我就是找不到问题的根源。。。有人能帮帮我吗?
前言:我是这个项目的edobry团队成员,我是后端人员,所以这次进军前端对我来说是新的,也是迷人的。
因此,在我完成项目的过程中,经过对代码的仔细分析,发现请求变量中的POST数据是空的。数据被正确地发送到$.ajax调用,但从未到达服务器。经过更多的狩猎,我发现了一些可疑的东西,我和edobry当时能够辨别出发生了什么。
我们在页面的其他部分使用Ajax,Ajax方法被调用了好几次,所以我们在$.ajaxSetup中考虑了每次方法调用时设置的一些设置。其中之一是dataType被设置为"text",contentType被设置成"application/json"。signalR似乎没有正确地覆盖全局ajax设置。我不确定这是一个错误还是预期行为,但如果是这样的话,应该更好地记录它(如果是,请随意称我们为傻瓜。:))
您的方法被调用RegisterSource,并且您在javascript中调用RegisterSourceegisterSource
相关文章:
- SignalR:调用集线器方法时出现内部服务器错误
- 如何解决“;错误所请求的URL返回500-内部服务器错误”;
- 使用javascript API响应内部服务器错误将曲目上传到SoundCloud
- AJAX错误状态代码500内部服务器错误
- Jcrop&画布:裁剪区域的大小很奇怪;500内部服务器错误
- 如果JS会话变量为null,如何避免500内部服务器错误
- POST encodeURI查询字符串内部服务器错误 500
- getJSON:网络错误:500 内部服务器错误
- Node.js:Mongoose内部服务器错误
- 缺少用于创建的模板.内部服务器错误-聚合物表单保存到数据库
- Jquery AJAX Post:500(内部服务器错误)
- CSS和Javascript可以在内部服务器上工作,但不能在外部工作
- 我的联系表格在测试/PHPMailer后给了我一个内部服务器错误(500)
- 500(内部服务器错误)的外部php文件
- 内部服务器错误在 post 请求中使用 Angular js 中的自定义服务
- 内部服务器错误:将 JavaScript 对象传递给 C#
- 为什么我的 rails AJAX 请求会抛出内部服务器错误
- 500 asp.net 内部服务器错误
- 500 内部服务器错误:无法更新猫鼬中的用户
- 在尝试将插入值从javascript调用到Visual Studio中的sql服务器时,收到内部服务器错误500