鳩の谷の街です。
Windows Server Solutions SDK の中で 一つだけずっと動作できなかったサンプルがあります。”HealthSample”といって、あるサーバのヘルス状態をWindows Azure のサービスを経由して、別のサーバーのAdd-Inの画面で表示するというシナリオです。
イメージとしてはこんな感じ。
Add-Inとしての表示はこんな感じに見えます。
当然 AppFabric を使用する関係でインストール環境構築も少しくせがあります。基本的な流れは下記の通りになります。
①開発環境としてWindows Azure SDK 1.3の環境を作成する。
②ターゲットのサーバーにWindows Azure AppFabric SDKをインスト
③環境をビルドします。
④Windows Azure の契約をして AppFabricの環境を構築する。
⑤テスト環境に必要なDLLのコピーとAppFabricの定義を設定
⑥サンプルアプリを実行する。
①開発環境としてWindows Azure SDK 1.3の環境を作成する。
開発環境の構築方法はこちらの方に譲りますが。。。
VS2010 → Azure SDK 1.3 → Azure Tool Kit とインストします。
②ターゲットのサーバーにWindows Azure AppFabric SDKをインスト
AppFabricのサイトからSDKを入手してこれを各サーバーにインストールします。(サンプルの中では .Net Service SDK となってますが、AppFabric SDK に名称が変更になっているためです。)
③環境をビルドします。
環境のビルドを実施する前に必要なDLLをあらかじめターゲットから持ってくる必要があります。(C:\Program Files\Windows Server\Bin 配下)今回は必要なDLLが多いので、あらかじめまとめてコピーしておくことをおすすめします。
サンプルである”HealthSample”配下の HealthSample.sln を展開すると5つのプロジェクトが展開されますので、内部参照のDLLの未解決問題を解決しておきます。この辺りはWSS SDK ④ サンプル DashBord Add-In をビルドしてみる。を参考にしてください。
この問題を解決してからビルドを実施します。
ビルドを実施するとおそらく2か所コンパイルエラーが発生します。
場所は下記の場所になると思います。(波線の箇所)
CloudHealthProvider と HealthDashboardProvider の中に
Program.cs のモジュールに下記の行があります。
Microsoft.WindowsServerSolutions.Common.WindowsServerSolutionsEnvironment.Initialize();
最新の Windows Server Solutions SDK (MSDNに掲載されました)を参照すると、該当するものが無いのでコメントアウトします。
最終的にビルドがすべて正常に終了することを確認します。
④Windows Azure の契約をして AppFabricの環境を構築する。
もし Windows Azure の契約をしていない場合はデータセンターを使用する関係で Windows Azure の契約が必要になります。
必要なものは Windows Live ID とクレジットカードになります。
こちらのサイトからプランを選択して購入しますが、個人的には「特別導入プラン」でも問題はないと思います。
プランを選択して契約ができたら、AppFabricのサイトに移動します。
自分が契約したプロジェクト名を選択します。
ココにある “+ Add Service Namespace” を選択します。
四角の箇所を選択し新規に作成します。
(接続数は5としてますが”0”にしてください、余計に課金されます。)
再度この画面の新規に作成したNamespaceを選択します。
四角の2カ所が必要なのでコピペしておきます。
・Service Namespace :
・Default Issu Key :
⑤テスト環境に必要なDLLのコピーとAppFabricの定義を設定
ビルドが完了した開発環境から必要なモジュールをターゲット側のサーバの指定箇所(C:\Program Files\Windows Server\Bin配下)へコピーします
(サンプルの”SDK Readme.txt”よく読んでください)
HealthDashboardProvider.exe.config
CloudHealthProvider.exe.config
の2つは Service Namespace / Default Issu Key をセットします。
(該当の箇所は両方とも [TODO] と書かれているはずです。)
⑥サンプルアプリを実行する。
サーバー1側のコマンドプロンプトを管理者権限で起動します。
起動したら指定のパス(C:\Program Files\Windows Server\Bin )
に移動して”HealthDashboardProvider.exe”を実行します。
この状態でWHSコンソールを起動します。
この状況を確認できたら2台目のサーバーのサンプルをを起動します。
起動方法は全く一緒で、CloudHealthProvider.exeを実効します。
この状況でサーバー1のWHSコンソールをみてみると台数が2台になります。
サンプルテストが終了したら、AppFabricを削除します
(そうしないと課金されるので)
削除の方法は下記の通りです
Service Namespace 画面から ”Delete Server Namespace”を選択
設定したNamespace名を入れます
ざっくりとですが、駆け足で説明させていただきました。
(大体2-3時間くらいで確認できると思います)
開発キットについては1月中旬と言われていますが、次回のDEなしのBeta提供の時にサンプルとテンプレートは更新される予定になっています。
(MSDNの物は最新版にアップデートされている模様です。)
それと最近情報をお出ししていませんがAsoft’s BlogにもSDKに関する情報は更新されています。
・Creating a client side installer for Vail
今回はこんなところで。
PS.今回のテストではサーバー1の名前が正しくないのですが、サンプルの主旨はサーバーをまたがっての情報伝達をどうするかというのがメインなので、あえてこのままにしてあります。ご了解のほど。。