2016-09-22 85 views
0

我在Amazon Web Services'Elasticbeanstalk(IIS配置的機器)上部署了一個Asp.Net Web API項目。一切工作正常,除了WebSocket。爲了更方便地測試WebSocket,我在Chrome上使用Simple WebSocket Client擴展。AWS Elasticbeanstalk WebSockets

當我做對API的請求,我得到以下(錯誤)消息(我看到這條消息在開發者控制檯的網絡選項卡):

WebSocket connection to 'ws://my_url' failed: Error during WebSocket handshake: Unexpected response code: 400 

我還沒有找到足夠的信息來解決這個問題。

我試圖啓用所有端口和所有IP在Security Groups下的所有入站/出站TCP連接。

我試着創建一個空的Asp.Net Web API項目,它只有一個基本的WebSocket示例(只是向連接的用戶發送消息),並將它部署到AWS上的全新環境和應用程序。

到目前爲止沒有任何工作。

我正在使用Microsoft's WebSockets,.NET Framework 4.5.1。

什麼是可能的解決方法?

回答

-1

我通過Inbound段的Security Groups加入All TCP並使用服務器而不是AWS的IP地址創建的名稱解決了這個問題。

0

如果您在彈性beanstalk中使用AWS Elastic Load Balancer,那麼ELB不支持Web套接字,您必須應用工作。更改支持Websockets的Load Balancer頂級經典負載均衡器。

https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/

+0

我正在一步步完成他們在文章上的操作,但我仍然得到相同的錯誤。我嘗試刪除EC2的當前負載均衡器,現在我甚至無法連接到我的服務器。我如何將新的負載平衡器(ALB-應用程序負載均衡器)與現有的EC2實例相匹配?我也嘗試用ALB創建新的EC2,但我沒有被問到負載平衡器,以便我可以選擇ALB。你知道嗎? – JustWork

+1

AWS Elastic Load Balancer實際上支持Web套接字,您只需將默認偵聽器協議(HTTP)更改爲TCP(如接受的答案和以下內容中所建議[博客](http://blog.flux7.com/web-apps -websockets與 - AWS-彈性負載平衡) – endertunc

相關問題