2017-03-16 54 views
0

IIS上でホストするSignalRハブを持つasp.net mvcアプリケーションがあります。それをSignalR Serviceと名づけましょう。一部の内部サービスは、SignalR Serviceに外部クライアントにイベントを通知する要求を送信できます。外部クライアントがSignalR Serviceへの接続状態を確認することが重要です。また、お客様は、SignalR Serviceができるだけ早く利用できないことをお客様に通知して、お客様が通知を受け取らないことを知る必要があります。IIS上でサイトが停止した後にSignalRクライアントが切断されない

IISでSignalR Serviceを停止すると問題が発生します。停止後にSignalR Serviceのプロセスが存在するため、クライアントの接続は切断されません。クライアントはサイトが停止していることを認識できません。サイトは停止しているため、内部サービスでは到達できず、外部クライアントに通知を送信することはできません。

すべてのサービスの動作は予期されますが、ビジネスロジックには適合しません。

IISでisが停止している場合、SignalR Serviceドロップ接続を行うにはどうすればよいですか? IIS上のサイトのワークフローはまったくいいアイデアですか?

+0

クライアントは再接続を試み、再接続試行のタイムアウト後にのみ停止するためですか? – Pawel

+0

@Pawelいいえ、そうではありません。私はそれをテストしたとき、すべてのタイムアウトが経過しているに違いないので、私は長い間クライアントを離れました。 –

+0

クライアントが接続されていない理由を調べるために、クライアントのログオンをオンにする必要があると思います。デフォルト設定では、クライアントはサーバが20秒未満でアクティブでないことに気付き、再接続を試みる必要があります。クライアントが30秒以内に再接続できない場合は、切断する必要があります。 – Pawel

答えて

0

IISが停止して起動したときに、すべてのゾンビ接続を切断する方法を知るには、下記の答えを見つけてください。

注:AppPoolを再起動すると、再接続イベントが発生します。しかし、Webサイトを再起動すると、まったく新しいアプリケーションサイクルが始まります。この場合、物理接続(メモリオブジェクト内)と保存されたdb接続を比較するHubPresenceモニタを使用します。 SignalRのためのシンプルなプレゼンス管理を構築

https://patdunn.net/2015/05/05/building-a-simple-presence-manager-for-signalr/

は、それが助けたり、特定した他の可能な解決策なら、私に教えてください。ありがとう。

関連する問題