2012-02-17 7 views
0

私のウィンドウのAzureデータキャッシュに私のロールエントリースタートアップルーチンからアクセスしたいと思います。しかし、私はこのエラーを取得しておいてください。起動時にロールエントリポイントからDataCacheをロード

{「のErrorCode:SUBSTATUS:サーバーコレクションは空にすることはできません。」}

私は私のコントローラクラス内から同じことを行うときしかし、それはデータキャッシュの罰金をロードし、私は行くことができます先に進み、それで物事を行います。

アプリケーション開始前にデータキャッシュにアクセスするために必要なロール入力クラスには特別なものはありますか?

ロールスタートアップでキャッシュにアクセスできませんか?

乾杯

答えて

2

Azure SDK 1.3以降、大きな変更があります。完全IISモードです。 this blog postを読むと、完全なIISの完全な理解を得ることができます。

つまり、実際のWebアプリケーションはIIS(w3wp.exe)内に存在しますが、RoleEntryPointの子孫(OnStartメソッドが実行されている場所)は別のAppDomain全体に存在し、実際にはWaIISHost.exeを処理します。そのため、あなたのWebアプリケーションに影響を与える、またはあなたのweb.configを直接読むことができるOnStart()で何かをする方法がありません。

Webアプリケーションのデータの事前ロードを行うために、OnStartのAzureデータキャッシュを読み込む場合は、Global.asaxのApplication_Start()イベントハンドラで行います。

RoleEntryPointに固有の理由で、OnStartでAzureデータキャッシュを読み取る必要がある場合は、web.configから設定をロードする必要があります。 Web.configはAppRootフォルダに関連して "./bin/web.config"に置かれます。 (完全なIISでWebRolesを使用する場合、アプリケーションのコピーが2つあります.1つはAppRootに、もう1つはSitesRootにあります)。

希望すると便利です。

0

WebRoleのOnStartメソッドは、おそらくあなたはおそらくあなたのAppFabricのデータキャッシュプロバイダのサーバー名とアクセスキーを指定しているあなたのweb.configファイルを使用していません。

サーバー接続設定を手動で計測することを試みます。

関連する問題