SignalR永続接続で奇妙な問題が発生しました。これは、C#で書かれたモノサービス内で実行され、長いポーリング転送を使用します。アプリケーションは、KVM内のUbuntu VM上で動作します。アプリケーションとHTML/jsクライアント間の通信はほとんどの場合正常ですが、何らかの理由で何らかの理由で新しく作成された接続がすべて動作すると、接続が確立され、OnConnectedメソッドが呼び出されますが、それはタイムアウトします。アプリケーションがこの状態になる100%のケースでは、それを再起動することは役に立ちません。クライアントからの「ポーリング」要求は依然として時間切れになります。これを助ける唯一のことは、VM全体を再起動することです。そんなことを経験した人はいますか? SignalRはファイルシステムへの接続データを保持しています。なぜなら、アプリケーションを再起動しても、長いポーリング要求をタイムアウトさせる理由があるからです。SignalR永続的な接続がクライアントからの「ポーリング」要求のタイムアウトを開始し、再起動後に回復しません。
1
A
答えて
0
愚かな私!この問題は、SignalR接続の認可中に起こっていたデータベースアクセスと関係していました。 DBアクセス層の設計がうまくいかず、DBがロックされることがありました。認証手続きは、DBロックが解放され、最終的にはタイムアウトするのを待ちます。この逸話を読んでいる人のためのアドバイスとして、PersistentConnectionの場合、AuthorizeRequestメソッド内でIO重いものは起こっていないことを確認してください!それを避けることができない場合、それは非常に慎重に設計されるべきです、そうでなければタイムアウトを求めています。
関連する問題
- 1. Azure Webアプリケーションの再起動後にSignalRが再接続する
- 2. IIS AppPoolのリサイクル後にSignalrが永久に再接続する
- 3. サーバの再起動までC3P0接続が復旧しない
- 4. 接続と接続要求のタイムアウト
- 5. サーバの再起動後にRMIクライアントを再接続する
- 6. ADBがデバイスの再起動後に再接続しない
- 7. SignalRがクライアント側で再接続イベントをキャプチャしていない
- 8. 要求処理時の永続的TCP接続または接続
- 9. タイムアウトで接続が閉じられた後、hibernateがmysqlに再接続できませんでした
- 10. メンバーの再起動後、Hazelcastがクライアント接続を終了します
- 11. SignalR Invokeが再接続後に機能しなくなる
- 12. SignalRが「開始要求の開始」でフリーズします
- 13. カサンドラは再起動後に接続できません
- 14. MySQL OSX Lion - 再起動後に接続できません
- 15. ハード再起動後、Postgresql(Rails)に接続できません
- 16. SignalR .Netクライアント非同期再接続
- 17. ODP.NET接続要求のタイムアウトが発生しました
- 18. 再起動後にAWS EC2に接続
- 19. 接続後にCBCentralManagerが再起動します
- 20. GoogleAPICクライアントが電話を回した後に接続しない
- 21. SSE接続が確立された直後にSignalRサーバがUnityクライアントへの接続を終了しました
- 22. java.sql.SQLTransientConnectionException:spring HikariCP - 接続が利用できない、要求がタイムアウトした後に
- 23. サービスは永続的な「開始」ステータス
- 24. CentOS7でサービスを再起動した後でartifactoryに接続できません
- 25. WebアプリケーションからJavaソケット接続が開始され、サーバーが再起動すると再び開きます
- 26. Angularjs SignalR接続が動作しない
- 27. SignalRコア接続ID要求エラー
- 28. Pgpoolが接続を回復しない
- 29. Socket-ioクライアントは接続要求を送信し続けます
- 30. sonarqube mssqlserverで接続した後に起動できません