SignalR: удаленный сервер возвратил ошибку: (503) сервер недоступен - PullRequest
0 голосов
/ 31 января 2019

Я создал концентратор SignalR в веб-приложении и отправляю сообщение в веб-приложение через SignalR из оконного сервиса.он работает нормально, когда больше нет сообщений для отправки в веб-приложение через оконную службу, но иногда в моей оконной службе мы отправляли несколько широковещательных сообщений клиенту через концентратор сигналов, в то время как мы получили сообщение об ошибке.

    : 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.

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.Пожалуйста, помогите мне решить эту проблему.

Я использовал Visual Studio 2010, MVC 4, .Net Framework 4.0 и SignalR V1.2.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...