Webサービスを使用しているApp Serviceのトラブルシューティングを進めています。 サービスプランBasicで実行しており、350のWebソケットが可能です。 これは、WebSocketを使用する唯一の計画です。Azureのアクティブな接続でwebsocketの制限を解決しました
問題は、20時間後に私は503の応答を得て、自分のwebsocketの限界に達したということです。
セットアップには、3つのクライアントがサービスに接続しています。
私のアプリでウェブソケットのリークを調べる過程で、使用しているウェブソケットの数を追跡したいと思います。
私のアプリやAzureポータルでは、どこにアクティブなWebソケット接続の数が表示されていますか?
フォローアップ:
私はAmor suggestedとしてのWebSocket接続をログに記録しました。 私のアプリのHTTP部分はまだ動作していますが、私はアプリケーションから動的な結果を得ることができます。これは現在どのwebsocket接続がアクティブで、何回起動してから作成されたのかを報告します。
アプリサービスを再起動し、1人のクライアントが無期限に再接続するように設定した後。
「ウェブソケットの接続総数」が350に達するまでうまくいきました。この時点でクライアントをシャットダウンしました。
制限は350同時接続である必要がありますが、開始から合計350個のようです。 これらの接続のほとんど(少なくとも340個)は、新しい接続を開始する前に各接続を配置した単一のクライアントによって開始されました。制限に達するとシャットダウンされました。
標準には人為的な制限がないため、私はBasicからStandardへのアップグレードを提案されています。私がこの作業を見ることができる唯一の理由は、基本計画のwebsocket制限にバグがある場合です。
アップデート2
は、並行して、私は、Microsoftの開発者サポートに接触してきたし、彼らはソケットがケストレルしていないのに対し、IISで立ち往生していることであることをを思われるもの気づきました。この原因はまだ調査中です。
サポートには、時間の経過とともにどのように限界に達したかを明確に示す接続使用状況のグラフが表示される可能性があります。
私のコードに何らかのエラーがあった場合に備えて、この質問を更新します。
新しいWebSocketごとに増加する第2のカウンタを追加しました。 結果は、WebSocketの合計接続数(同時ではありません)が350になります。 – hultqvist
接続を正しく閉じているかどうかを確認してください。下記のリンクは参考になります。 [.NETで双方向WebSocketを正常に閉じる方法](https://stackoverflow.com/questions/28330705/how-to-gracefully-close-a-two-way-websocket-in-net) – Amor