トップ回答者
開発ストレージ上のクロスドメイン配置方法?
-
お世話になります
Azure上のBLOBストレージの$rootにクロスドメイン用のclientaccesspolicy.xmlを配置して
silverlight アプリからBLOBデータにアクセスはOKでしたが
http://ccccc.blob.core.windows.net/xxxxx/test.xml開発用ストレージの$rootにもclientaccesspolicy.xmlを配置して
silverlight アプリから同様にアクセスした場合には、
セキュリティエラーが発生します
http://127.0.0.1:10000/devstoreaccount1/xxxxx/test.xml開発用ストレージの場合は、clientaccesspolicy.xmlを
どこに配置すればOKなのでしょうか?上記Azureストレージも、開発ストレージも
ブラウザからはアクセス可能でした宜しくお願い致します
質問
回答
-
こんにちは。
Windows Azureのストレージエミュレータは URLが http://127.0.0.1:10000/devstoreaccount1/xxxx~のように
/devstoreaccount1/が付与されるため、Silverligihtアプリがclientaccesspolicy.xml を見つけることが出来ません。※ルート直下のClientAccessPolicy.xmlを見に行くためだと思います。
回避方法としては Ag.AzureDevelopmentStorageProxy といったProxyを使用する方法が考えられます。
Ag.AzureDevelopmentStorageProxy
http://agazuredevstoreproxy.codeplex.com/Ag.AzureDevelopmentStorageProxy は 既定で http://127.0.0.1:11000 で待ち受け、受けた要求は http://127.0.0.1:10000/devstoreaccount1/ に転送します。
つまりSilverlightから見て http://127.0.0.1:11000/clientaccesspolicy.xml (Proxy)にアクセスすることで
http://127.0.0.1:10000/devstoreaccount1/clientaccesspolicy.xml (Blobのエミュレータ上のURL)にアクセスできると思います。Blob上ではルート直下のコンテナは $root ですので、clientaccesspolicy.xmlファイルは $rootコンテナに置くのは変わりません。
※注意点としてAg.AzureDevelopmentStorageProxyは管理者権限で実行ください
※URL貼り忘れたので編集しました。
すべての返信
-
こんにちは。
Windows Azureのストレージエミュレータは URLが http://127.0.0.1:10000/devstoreaccount1/xxxx~のように
/devstoreaccount1/が付与されるため、Silverligihtアプリがclientaccesspolicy.xml を見つけることが出来ません。※ルート直下のClientAccessPolicy.xmlを見に行くためだと思います。
回避方法としては Ag.AzureDevelopmentStorageProxy といったProxyを使用する方法が考えられます。
Ag.AzureDevelopmentStorageProxy
http://agazuredevstoreproxy.codeplex.com/Ag.AzureDevelopmentStorageProxy は 既定で http://127.0.0.1:11000 で待ち受け、受けた要求は http://127.0.0.1:10000/devstoreaccount1/ に転送します。
つまりSilverlightから見て http://127.0.0.1:11000/clientaccesspolicy.xml (Proxy)にアクセスすることで
http://127.0.0.1:10000/devstoreaccount1/clientaccesspolicy.xml (Blobのエミュレータ上のURL)にアクセスできると思います。Blob上ではルート直下のコンテナは $root ですので、clientaccesspolicy.xmlファイルは $rootコンテナに置くのは変わりません。
※注意点としてAg.AzureDevelopmentStorageProxyは管理者権限で実行ください
※URL貼り忘れたので編集しました。

