У меня есть aws ec2 экземпляр с конфигурацией signalR. Когда я пытаюсь соединить signalR с URL 'https://www.domainname.com/signalr/' от клиента c#, он не может позволить мне подключиться и вызвать ошибку "Ошибка протокола: неизвестный транспорт". Я использую. net Framework 4.5. Проект разрабатывался в 2018 году, затем он работал нормально в течение двух дней, прежде чем начал выдавать мне эту ошибку без каких-либо публикаций sh в проекте.
Код концентратора:
[HubName("MyHub")]
public class MyHub : Microsoft.AspNet.SignalR.Hub
{
public override Task OnConnected()
{
try
{
string name = Context.QueryString["name"];
bool? IsServer = Convert.ToBoolean(Context.QueryString["isServer"]);
_connections.Add(name.ToUpper(), Context.ConnectionId);
Groups.Add(Context.ConnectionId, name.ToUpper());
}
catch (Exception ex)
{
}
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
try
{
string name = Context.QueryString["name"];
_connections.Remove(name.ToUpper(), Context.ConnectionId);
bool? IsServer = Convert.ToBoolean(Context.QueryString["isServer"]);
log.Info("DISconnected name is : " + name + " : " + Context.ConnectionId);
Groups.Remove(Context.ConnectionId, name.ToUpper());
}
catch (Exception ex)
{
log.Error("OnDisconnected error", ex);
}
return base.OnDisconnected(stopCalled);
}
}
Код клиента C#:
public void ConnectToHub(ClientInfo clientInfo)
{
try
{
bool isResponseCall = false;
var url = "https://www.demo.com";
var dict = new Dictionary<string, string>();
dict.Add("name", "xyz");
var hubConnection = new HubConnection(url, dict);
var hub = hubConnection.CreateHubProxy("MyHub");
hubConnection.Closed += () =>
{
if (!isResponseCall)
{
ConnectToHub(serverInfo);
}
};
hubConnection.Error += (Exception ex) => {
ex = ex;
};
hubConnection.Start().Wait();
}
catch (Exception)
{
}
}