Rad Studio XE2で追加されたAzure用コントロール
「TAzureConnectionInfo」を使用して、Windows Azure Storageの
テーブルに接続するプログラムを作成しています。
デプロイしたものではなく、ローカル開発用ストレージで
接続検証しているのですが、エラーとなりうまくいきませんでした。
■手順
1.新規プロジェクト(VCLフォームアプリケーション作成)
2.フォームにTAzureConnectionInfoとボタンを配置
3.ボタンのクリックイベントで以下のコードを記述
procedure TForm1.Button1Click(Sender: TObject); var
TableService1 : TAzureTableService;
TableRow : Data.Cloud.CloudAPI.TCloudTableRow;
begin
with AzureConnectionInfo1 do
begin
Protocol := 'http';
RequestProxyHost := '127.0.0.1'; //localhost
RequestProxyPort := 80;
UseDefaultEndpoints := True;
UseDevelopmentStorage := True; //開発用ストレージ
end;
TableService1 := TAzureTableService.Create(AzureConnectionInfo1);
ShowMessage(IntToStr(TableService1.QueryEntities('TABLE1').Count)); //ローカルストレージのある「TABLE1」に接続
end;
■結果
「EIdHTTPProtocolException」エラーとなり、接続することができませんでした。
・Visual Studioのサーバーエクスプローラでは
ローカル開発ストレージ上のTABLE1テーブルの
レコードが正常に表示されること確認しています。
・Protocolの設定をhttpsにしても同エラーとなります。
・方法の問題と思うのですが、参考になるサイトも見当たらず。。。
■問い合わせ内容
エラーを回避し、正常にテーブルのレコード情報を取得する方法が
わかりましたら教えていただけますでしょうか。
Azureエミュレータを実行するのを忘れているだけとか...
編集 削除ありがとうございます。
Azure開発を始めたばかりのため、よくわかっていない部分もあるのですが、
Visual Studioのサーバーエクスプローラではテーブルのレコードが表示できていますので、Azureエミュレーターはおそらく問題ないと思います。
もし他の考えられる原因がありましたらお知らせいただけますでしょうか。
検証用のコードでは省かれていますが、AzureConnectionInfo1のアカウント設定は、
ここ(http://msdn.microsoft.com/ja-jp/library/gg432983.aspx)の「認証要求」に示されたものを設定してますか?