У меня проблема при использовании SignalR и IIS на моей Windows 10 машине. Проблема в том, что IIS допускает только 10 одновременных подключений . Когда будет достигнуто 10-е соединение, HubConnection на стороне клиента будет оставаться в состоянии Connecting в течение длительного времени.
using Microsoft.AspNet.SignalR.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static int usedConnections = 0;
static void Main(string[] args)
{
Foo();
while (true) { }
}
static async void Foo()
{
for(int i = 0; i < 15; i++)
{
await SetupSignalR();
}
}
static async Task SetupSignalR()
{
//Set connection
var hub = new HubConnection("http://MyComputer/MyIISApp");
hub.TraceLevel = TraceLevels.All;
hub.TraceWriter = Console.Out;
//Make proxy to hub based on hub name on server
var myHub = hub.CreateHubProxy("MyIISHub");
//Start connection
hub.TransportConnectTimeout = TimeSpan.FromSeconds(5);
await hub.Start();
usedConnections++;
Console.WriteLine($"Used Conenctions: {usedConnections}");
return;
}
}
}
Через некоторое время я хотел бы показать пользователю сообщение о том, что HubConnection не может подключиться к серверу, но я не могу понять, как установить тайм-аут или вызвать событие. Что я могу сделать, чтобы уведомить пользователя о том, что IIS не принимает запрос на подключение?