2012-04-08 7 views
1

管理者がiisをリセットしたり、asp.net MVCアプリケーションサーバでいくつかの変更を行うことができるように、すべてのユーザに作業とログアウトを保存するように通知する必要があります。各セッションユーザへのBroadCast Adminメッセージ

セッションオブジェクトコレクションをループすることは、スレッドセーフではありません。これは、私が学んだものです。

他のアイデアですか?

アクティブなセッションを保持できても、どのようにメッセージを送信すればよいですか?

ありがとうございます。

答えて

1

データベースにメッセージを保存し、メッセージが存在するかどうかを確認するたびにデータベースに問い合わせます。

+0

私は既に各リクエストでこれを行っています。しかし、私は、サーバーからこの応答を開始することを望んでいます。 – Deb

+1

新しい要件であるメッセージをクライアントにプッシュする必要があります。 AJAXポーリングを使用して、サーバー上の何らかのアクションを実行できます。サーバーアクションはデータベースに照会できます。 – usr

0

これは、あまり定義されていないようです。

重要なメンテナンスは、特定の時間に行う必要があります。また、その時間帯に事前に通知する必要があります。

IISを再起動するだけで、かなり簡単な手順です...単純にIISを再起動すると、ユーザーが作業を失う理由はありますか?私はこのStackOverflowの答えを記入していましたが、例えば、彼らは数十回サーバーを再起動できました。 Postを押すと、サーバーがダウンしていると、タイムアウトして仕事をテキストエリアに残すか、サーバーが時間内に戻ると正常に接続されます。

データを送信せずにリンクをクリックするだけで、同じことが適用されます。ブラウザがタイムアウトした場合、サーバーがバックアップされると単純なリフレッシュで十分です。彼らは行きたい。

あなたが純粋なAJAXリクエストを行っている場合は、ブラウザに頼るのではなく、あなた自身が不足しているサーバを処理する必要がありますが、分散コンピューティングの8つの弱点のために、 #1: "ネットワークは信頼できます。" (http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computingを参照してください)

だから、私は実際にその要件を取り戻したいと思います。彼らは、あなたが本当に必要性に合わない(ユーザーがデータを失うことはなく、合理的に良い経験を持っている)、複雑になる、そして最終的には脆弱な解決策になるようなことをするよう求めています。

+0

セッションが失われ、エントリの途中にあるすべてのユーザが、不十分な管理者に一度に発煙し始めるからです。デプロイメントの最初の数ヶ月で、iisresetが必要なビルドが頻繁に更新されるため、ユーザーの警告が必要になります。 – Deb

+1

それはイライラと聞こえる!おそらく、「セッションデータがサーバーの再起動を引き継ぐ」という要件が必要ですか?それは、通常、StateServerまたはSQL Serverにセッションデータを格納するだけで、面白いものよりも実装する方がはるかに簡単です。デフォルトの「インプロセス」セッションストレージを使用して、再起動時にすべてのユーザーセッションが消去される場合のみです。 –

+0

これは要件の1つです。マネージャーは仕事を割り当てたり、会議をスケジュールしたりするなどしたいと思っています。 – Deb

関連する問題