在项目开始时,我使用http直接通过IP地址而不是域名与ec2连接,并且可以很好地连接到我的c#客户端和通过ip adderess连接到ec2的Web客户端。
最近,我在负载均衡器中添加了Https,并为所有ec2配置了https安全组,并且开始出现故障。
具有https和ip地址的Signalal Web客户端在ec2上可以正常连接,但是具有https和ip地址的c#客户端未连接。 C#客户端连续抛出连接关闭方法。
为解决此问题,我将连接url从ip更改为弹性beantalk域名,将c#客户端和信号器连接了,但是发生了以下情况。
1)第一次连接beantalk域名时,它在建立连接时响应400报头错误,并且还响应数据库中的数据,因此首次建立连接。
2)服务器回复后,我调用了服务器的另一种方法,当时发生错误,指出连接已断开,请在向服务器发出请求之前启动连接。
3)在signalr中,有一个连接关闭方法,如果连接已经关闭并且没有调用,则调用该方法。
4)我已经在Internet中搜索了查询,发现我们必须在beantalk上配置套接字连接,因为它们与nginx存在相同的问题。我正在使用IIS,对此没有特别的答案。
5)我尝试直接在ec2实例域名上进行连接,但是signalr没有建立连接,而是直接启动连接关闭方法,而没有任何错误或警告。
6)在我的网络配置中,我启用了443和80的入站端口。如果我从浏览器向beantalk或ec2的域URL发出请求,则其工作正常