Winform アプリケーションで Azure AppFabric キャッシュを使用したときの "サーバー コレクションは空にできません" エラー

原文の記事の投稿日: 2011 年 10 月 27 日 (木曜日)

私は 1 つの問題に直面しました。残念なことに、何人かのユーザーも Windows Azure の AppFabric キャッシュ機能を使用するときにこの問題に出くわしていることがわかりました。これは、キャッシュ メカニズムのリリース バージョンであり、以前は Velocity として知られていました。この Velocity が使用するキャッシュ ファクトリに関する問題が発生した場合に、最も頻繁にスローされるエラー メッセージが "サーバー コレクションは空にできません" の行に沿って表示されます。残念ながら、これは、多くの場合、原因を突き止めることが非常に難しい別のユビキタス エラーです。このケースでは、この問題はさらに厄介なものでした。私は、キャッシュを使用するコンパイル済みのスタンドアロン アセンブリを持っていました。Azure ワーカー ロールからこのアセンブリを呼び出した場合、エラーは一切発生しませんでした。しかし、このアセンブリへの参照を私の Winform テスト アプリケーションに追加してそのアプリケーションを実行すると、この恐ろしいエラーが表示されました。

私は、髪の毛を一度に 1 本ずつ抜きながら、また魂の検索 (なぜ私はここにいるのか、なぜ私はこんなことをしているのか) を実行しながら、この問題を十分につつき回した後、ついに何が問題であったかがひらめきました。私の Winform アプリケーションでは、キャッシュ クラスを直接呼び出していなかったのですが、これはホスト プロセスでした。つまり、私のワーカー ロール アプリケーション内にあるすべてのキャッシュ構成エントリを私の Winform アプリケーションの app.config に追加する必要があったのです。これらを追加すると、すべてが正常に機能しました。

このような種類のシナリオはいささか一般的だと思われますが、このエラーは原因を突き止めることが本当に大変です。皆様が同様の苦境に置かれたときのために、ここに記録しておこうと考えました。

これはローカライズされたブログ投稿です。原文の記事は、「Server Collection Cannot Be Empty Error When Using Azure AppFabric Caching in Winforms Application」をご覧ください。