SignalR:远程服务器返回错误:(503)服务器不可用

时间:2019-01-31 07:34:52

标签: asp.net-mvc-4 windows-services signalr-hub signalr.client http-status-code-503

我已经在Web应用程序中创建了SignalR集线器,并通过SignalR从窗口服务向Web应用程序发送了一条消息。当没有更多消息要通过窗口服务发送到Web应用程序时,它工作正常,但有时在我的窗口服务中,我们当时已通过Signalr Hub发送多个广播消息给客户端,我们收到了错误消息。

    : InnerExceptions : System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]
Message : One or more errors occurred.
Data : System.Collections.ListDictionaryInternal
InnerException : System.Net.WebException: The remote server returned an error: (503) Server Unavailable.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at Microsoft.AspNet.SignalR.Client.Http.HttpHelper.<>c__DisplayClass2.<GetHttpResponseAsync>b__0(IAsyncResult ar)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) TargetSite : Void ThrowIfExceptional(Boolean)
StackTrace :    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()

下面是我的窗口服务代码,该代码用于使用SignalR集线器向Web应用发送消息。

try
{
    HubConnection conn = new HubConnection("http://localhost:8080/");
    IHubProxy hub = conn.CreateHubProxy("MyHub");

    string jsonObject = string.Empty;
    var v = new { ID = 1, IsCompleted = true };
    jsonObject = JsonConvert.SerializeObject(v);

    conn.Start().Wait(); // *this is where I get the error
    hub.Invoke("RefreshSummary", jsonObject);

}
catch (Exception Ex)
{
}

以下是网络应用中用于向客户端发送消息的代码

public class MyHub: Hub
    {
        public void RefreshSummary(string message)
        {
            IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
            context.Clients.All.refreshSummary(message);
        }
}

我的窗口服务用于从队列中的数据库中读取记录并对其进行处理。有时记录队列一次包含3000至4000条记录,在这段时间内,我在代码“ conn.Start()。Wait(); ”中收到了此错误消息。一旦从队列处理了一条记录,然后通过SignalR集线器通知Web应用。请帮我解决这个问题。

我已经使用了Visual Studio 2010,MVC 4,.Net Framework 4.0和SignalR V1.2.2

0 个答案:

没有答案