SignalR:远程服务器返回错误:(500)内部服务器错误

时间:2012-07-06 11:47:17

标签: c# asp.net-mvc-3 signalr

我在我的MVC项目中安装了signalR的客户端和服务器;我可以从网络客户端呼叫我的中心;

var testHub;
$(function () {
    // Setup SignalR
    testHub = $.connection.myhub;
    testHub.msg = function (ref) {
        alert(ref);
    };

    $.connection.hub.start(function () {
        testHub.addToQueue("TESTMSG");
    });

});

在控制器上,我需要在处理完一些请求后调用我的集线器;所以我添加了对SignalR.Client.dll -Version(0.5.2.0)和Newtonsoft.Json.dll(4.5.0.0)运行时4的引用。

我的控制器调用如下

  var connection = new HubConnection("http://localhost:50439/");
        IHubProxy myHub = connection.CreateProxy("myhub");
        connection.Start().Wait();
        myHub.Invoke("addToQueue", new { message = "Hello world" }).ContinueWith(task =>
        {


        }, TaskContinuationOptions.OnlyOnFaulted);

我的中心如下所示:

 [HubName("myhub")]
public class QueueHub:Hub
{
    public void addToQueue(string message)
    {
        Clients.msg(message);
    }
}

但是当来自控制器的调用发生时,系统会出现以下错误: 读取字符串出错。意外的令牌:StartObject。路径'',第1行,第46位,JsonSerializer

详情:

---> (Inner Exception #0) System.AggregateException: One or more errors occurred
. ---> System.Net.WebException: The remote server returned an error: (500) Inter
nal Server Error.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at SignalR.Client.Http.HttpHelper.<>c__DisplayClass2.<GetHttpResponseAsync>b_
_0(IAsyncResult ar) in C:\Documents and Settings\mrafeeq\My Documents\Downloads\
SignalR-SignalR-0.5.0-231-g7808c90\SignalR-SignalR-7808c90\SignalR.Client\Http\H
ttpHelper.cs:line 19

1 个答案:

答案 0 :(得分:2)

您正在错误地调用服务器端方法。你需要这样做:

myHub.Invoke("addToQueue", "Hello world").ContinueWith(task =>
{


}, TaskContinuationOptions.OnlyOnFaulted);