从WP8访问本地blob存储

时间:2014-05-10 03:42:02

标签: c# azure windows-phone-8

我正在尝试从我开发的WP8应用程序中下载存储在我的本地azure blob存储中的照片。 blob容器设置为可以公开访问任何人。主机防火墙已关闭,我的WP8应用程序可以访问我的WebApi。

例如,blob网址为http:// 127.0.0.1:10000 / devstoreaccount1 / photos / 1.jpg。 显然,无法从WP8应用程序访问127.0.0.1。所以我将127.0.0.1替换为192.168.0.3(我的主机LAN ip)。但不知何故,我无法访问该文件。它返回404异常。

任何人都知道如何访问本地azure blob存储中的blob文件?

干杯, LD

1 个答案:

答案 0 :(得分:0)

您可以更改存储模拟器的绑定参数。

如果您使用的是最新版本的Azure SDK(2.x),则存储模拟器配置文件的位置为:

C:\Program Files (x86)\Microsoft SDKs\Windows Azure\Storage Emulator\WAStorageEmulator.exe.config

此文件的相关配置部分是:

<services>
  <service name="Blob" url="http://127.0.0.1:10000/"/>
  <service name="Queue" url="http://127.0.0.1:10001/"/>
  <service name="Table" url="http://127.0.0.1:10002/"/>
</services>

稍后在此文件中,您还可以找到devstoreaccount1设置,您还可以在其中查看和/或更改密钥。

但是在编辑此文件时我会小心并将所有原始设置保存在安全的地方。 更改这些设置后,CloudStorageAccount.DevelopmentStorageAccount将不再有效。并且您必须提供指向新地址的实际Azure存储连接字符串!

另一个技巧是使用PortMapper application。我一直用这个来快速解决你提到的问题。它是一个非常简单的TCP端口映射器,您可以在其中配置源IP地址(例如192.168.0.13),目标IP地址(127.0.0.1)和端口(10000)。它一直在为我(和客户)工作,就像一个魅力,并帮助我避免编辑文件。