2016-09-20 38 views
0

AWS EC2にSignalRサービスがあります。 RedisエンジンElasticacheでバックプレーンを設定したいと思います。 Redis-cliツールを使用して、SignalRサーバーのEasticacheに正常に接続できます。私はbackpalne設定コードを置くときAWS ElastiCache RedisでのSignalRバックプレーンが失敗しました

C:\>redis-cli -h server.cache.amazonaws.com -p 6379 ping 
PONG 

はしかし、SignalRは

SignalRを返します。接続しようとするとWebSocketをトランスポートがタイムアウトになりました。バックプレーンの設定コード

GlobalHost.DependencyResolver.UseRedis(server, port, string.Empty, appName); 

なし

は、それはうまく動作します。

エラーメッセージが

 
[03:31:21 GMT+0000 (Coordinated Universal Time)] SignalR: Negotiating with 'http://server.elb.amazonaws.c…Protocol=1.5&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D'.VM47 jquery.signalR-2.2.0.min.js:8 

[03:31:28 GMT+0000 (Coordinated Universal Time)] SignalR: webSockets transport starting. VM47 jquery.signalR-2.2.0.min.js:8 

[03:31:28 GMT+0000 (Coordinated Universal Time)] SignalR: Connecting to websocket endpoint 'ws://server.elb.amazonaws.com/signalr/connect?transport=webSockets&clientProtocol=1.5&connectionToken=xSWImxTslxzzk4toiMzjuNod56GaOF27NaT1t1ZkACbNqMC%2BhVRvEFtc2MesygYDRY1ULm%2BtFSo4djNegjcNtuD6lpk1pQQ7ecVZoLFr6aPJ%2FP0HHhUmAjgOVs1FyqQt&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&tid=9'. VM47 jquery.signalR-2.2.0.min.js:8 

[03:31:28 GMT+0000 (Coordinated Universal Time)] SignalR: webSockets transport starting. VM47 jquery.signalR-2.2.0.min.js:8 

[03:31:33 GMT+0000 (Coordinated Universal Time)] SignalR: webSockets transport timed out when trying to connect. VM47 jquery.signalR-2.2.0.min.js:8 

[03:31:33 GMT+0000 (Coordinated Universal Time)] SignalR: Closing the Websocket. 
index.html#/intro:1 WebSocket connection to 'ws://server.elb.amazonaws.com/signalr/connect?transport=webSockets&clientProtocol=1.5&connectionToken=xSWImxTslxzzk4toiMzjuNod56GaOF27NaT1t1ZkACbNqMC%2BhVRvEFtc2MesygYDRY1ULm%2BtFSo4djNegjcNtuD6lpk1pQQ7ecVZoLFr6aPJ%2FP0HHhUmAjgOVs1FyqQt&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&tid=9' failed: WebSocket is closed before the connection is established. VM47 jquery.signalR-2.2.0.min.js:8 

[03:31:33 GMT+0000 (Coordinated Universal Time)] SignalR: Websocket closed. 

を次の更新

私は、サーバーにローカルのRedisをインストールした後に、同じ問題が発生しています。 AWS Elasticacheの問題ではないようです。

+0

AWSのRedisにローカル接続してサーバーを実行し、サーバーに例外がないかどうかを確認してください。 – Pawel

+0

ありがとうございます、私はローカルのRedisをインストールして、WebSocketsの転送タイムアウトの問題が発生しました。 AWS Elasticacheの問題ではありませんでした。私のサーバーは例外ではありません。 – Chris

+0

アイデアはRedisをローカルにインストールするのではなく、同じ問題が発生した場合は、トラブルシューティングがはるかに簡単になるように、ローカルで動作しているSignalRサーバーでAWSのRedisを使用することです。 – Pawel

答えて

1

ELBの問題が判明したため、SignalRサーバーのTransportConnectionTimeout値を大きくしました。

GlobalHost.Configuration.TransportConnectTimeout = TimeSpan.FromSeconds(1); 

問題は解決しました。

関連する問題