0

私たちのアプリケーションには、他のasp.netアプリケーションと同様に、いくつかのグローバル変数と隠しフィールドがあります。

Windows azure クラウド サービスについて疑問があります。azure には複数のインスタンスがあるため、コードの途中で javascript のグローバル変数に値が割り当てられている場合。

次に、負荷分散によるインスタンスのシフトが発生した場合、そのグローバル変数は同じ値を保持します。

また、サーバー上の指定されたフォルダーに大きな html テキストを保存し、ユーザーの選択に従ってしばらくしてから同じものを取得しています (大きな PDF ドキュメント)。これにより、インスタンスがシフトした場合に問題が発生します。

Windows azure の負荷分散基準は、私にはあまり明確ではありません。誰かがこれに光を当てることができれば、とても感謝しています.

4 つのインスタンスを作成する傾向があります。

4

1 に答える 1

2

私たちのアプリケーションには、他のasp.netアプリケーションと同様に、いくつかのグローバル変数と隠しフィールドがあります。

Windows azure クラウド サービスについて疑問があります。azure には複数のインスタンスがあるため、コードの途中で javascript のグローバル変数に値が割り当てられている場合。

次に、負荷分散によるインスタンスのシフトが発生した場合、そのグローバル変数は同じ値を保持します。

JavaScript はクライアント側のテクノロジであるため (少なくともユーザーが使用する形式では)、サーバー側のコードを使用して JS 変数を設定する必要があります。問題は、JS 変数を設定する変数をサーバーに格納する方法です。それらが特定のサーバーに格納されている場合 (静的変数またはインプロセス セッション変数を使用)、ロールの他のインスタンスでは使用できないため、間違いなく問題が発生します。

この問題を解決する 1 つの方法は、これらの変数を、すべてのインスタンスでアクセスできる場所 (分散キャッシュ、永続ストレージなど) に格納することです。機密情報が含まれていない場合は、Cookie に保存することもできます。

また、サーバー上の指定されたフォルダーに大きな html テキストを保存し、ユーザーの選択に従ってしばらくしてから同じものを取得しています (大きな PDF ドキュメント)。これにより、インスタンスがシフトした場合に問題が発生します。

そうそう!これは間違いなくあなたに問題を引き起こすでしょう。推奨される方法は、これらのファイルを VM のローカル ストレージではなく BLOB ストレージに保存することです。

Windows azure の負荷分散基準は、私にはあまり明確ではありません。誰かがこれに光を当てることができれば、とても感謝しています.

つまり、Windows Azure クラウド サービスはRound Robin Load Balancing、セッションの観点からサービスをステートレスにすることを本質的に指示するスキームを使用します。

Windows Azure クラウド サービスが提供するすべての機能が本当に必要ない場合は、Windows Azure Web サイトを調べることをお勧めします。Web サイトをホストしているだけなら、Windows Azure Web サイトは悪くない選択肢かもしれません。

于 2013-10-22T06:12:51.900 に答える