0

Webrole に 15 の Web サイトがあり、それらはすべて同じ Azure キャッシュを使用しています。必要なのは 128 MB のキャッシュだけなので、10 個の接続しか許可されません。

基本的に、App_start の各 Web サイトで 1 つの接続をインスタンス化し、それをアプリケーション レベルで保存すると、次のようになります (よく理解していれば):

  • x 個の Webrole インスタンスをキャッシュする 15 の接続

そのため、SLA 用の webrole の 2 つのインスタンスがあり、それぞれ 15 の Web サイトがあり、Azure キャッシュへの 30 の接続が作成されます。正しい ?

このスレッド: http://social.msdn.microsoft.com/Forums/en/windowsazuredata/thread/216a5159-0186-403c-89d8-99058d51a542

ある人は次のように述べています:「あなたの Web ロールは、すべての Web サイトで使用できる DataCacheFactory の静的インスタンスを持つことができます

つまり、Web サイトごとに 1 つのキャッシュ接続を使用するのではなく、Web ロールごとに 1 つしか使用できません。つまり、Azure キャッシュへの接続は 2 つしかないため、128 MB プランが完全に適合します。

では、 webrole 内のすべての Web サイトで使用できる DataCacheFactory の静的インスタンスを設定する方法を知っている人はいますか?

4

1 に答える 1

3

最初は、ここでの課題は、各 Web サイトが独自のアプリケーション プール (つまりプロセス) で実行され、静的メンバーをプロセス間で共有できないことだと思いました。この場合、考えられる解決策は、さまざまな Web サイトを同じアプリケーション プールで実行するように構成することです。

これにはコストがかかりますが、実際には関係ありません。Web サイトが同じアプリケーション プールで実行されていても、それぞれに独自の AppDomain があるため、静的メンバーを共有することはできません。

それを考えると、異なるWebサイト(または仮想ディレクトリ、本質的にはIIS上の2つの異なるアプリケーション)間で静的メンバーを共有することは不可能であると確信しています。

これは Azure 自体とは関係なく、IIS の動作とは関係ありません。

于 2011-11-26T13:06:47.747 に答える