Мы используем SignalR в приложении. Был тип исключения:
Хаб-серверу не удалось запуститься. Сообщение: произошла одна или несколько ошибок.
Трассировка стека: в
System.Threading.Tasks.Task.ThrowIfExceptional (Boolean
includeTaskCanceledExceptions) в
System.Threading.Tasks.Task.Wait (Int32 millisecondsTimeout,
Отмена взята Отмена взята) в
System.Threading.Tasks.Task.Wait () в
ProjectName.TryStartHub (Источник объекта, ElapsedEventArgs e)
Хотя не было ошибки, когда мы тестировали локально в моей системе. Когда мы развернули его с ARR. тогда было исключение, которое было только из-за ARR. В то время как мы также удалили ARR, а затем попробовали это сработало. Но это не работает с ARR.
Код правильный, но есть проблема конфигурации SignalR с ARR.
public void InitializeHub()
{
appLog.Write("Initializing Hub Server");
IHubProxy _hub;
var querystringData = new Dictionary<string, string>();
querystringData.Add("Key", "key1");
hypervisorConnection = new HubConnection("url", querystringData);
_hub = hConnection.CreateHubProxy("Hub");
_hub.On<HypervisorCommand>("ExecuteHypervisorCommand", x => ExecuteHypervisorCommand(x));
#region Initialize Hub Timer
hHubTimer = new System.Timers.Timer();
hHubTimer.Elapsed += new ElapsedEventHandler(TryStartHub);
hHubTimer.AutoReset = false;
hHubTimer.Interval = 1000;
hHubTimer.Enabled = true;
hHubTimer.Start();
#endregion
}
private void TryStartHub(object source, ElapsedEventArgs e)
{
try
{
if (hConnection.State != ConnectionState.Connected)
{
hConnection.Start().Wait();
appLog.Write("Hypervisor Hub server started.");
}
}
catch (Exception ex)
{
appLog.Write("Hub Server was unable to start. Message:" + ex.Message + "\n Stack trace:" + ex.StackTrace);
}
hHubTimer.Interval = 30000;
hHubTimer.Start();
}