我知道这已经得到了回答,但是还没有发布这个问题的简单解决方案。这是我为让我的 Mac 与我的整个 LAN 上的 PC 上运行的 Azure Storage Emulator(v4.3) 通信所做的工作。
在撰写本文时,我正在运行带有 v4.3 的 Azure 存储模拟器的 Windows 10 版本 1511。
- 确保 Azure 存储模拟器已关闭。你可以通过打开 Azure 存储模拟器命令提示符来做到这一点。您可以通过
Azure Storage Emulator
在“开始”菜单中键入来找到它。打开后,输入AzureStorageEmulator stop
.
- 获取运行 Azure 存储模拟器的计算机的 IP 地址。键入
ipconfig
您已经打开的命令提示符。查找 IPV4 地址 - 应该类似于192.168.1.xxx
- 打开位于的文件
C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe.config
- 在该
StorageEmulatorConfig
部分中,编辑每个服务,使其如下所示。显然将“xxx.xxx.xxx.xxx”替换为您的实际IP地址......但保持端口相同!
- 接下来,转到您的防火墙设置。我们需要允许您的计算机 IP 地址的入站连接到本
StorageEmulatorConfig
节中上面列出的这三个端口。在控制面板 -> 系统和安全 -> Windows 防火墙 -> 高级设置 -> 入站规则下,单击New Rule...
屏幕右侧的 。您将通过向导来设置新规则。我将在下面概述要做什么:
规则类型:选择Custom
程序:Customize...
然后选择Apply to services only
协议和端口:设置Protocol type
为TCP
和设置
Remote port
为Specific Ports
并在输入框中输入
10000-10002
。这会将本
StorageEmulatorConfig
节中指定的端口范围添加到此规则中,进而允许通过这些端口进行传入连接。
范围:跳过此部分,为简单起见,将其应用于所有 IP 地址
行动:允许连接
配置文件:根据您运行的连接配置文件,您应该选择合适的配置文件。在我的情况下,我的计算机连接到我家的 LAN,所以我连接到了专用
网络。我取消选择Domain
和Public
。我建议也这样做。
名称:Azure 存储模拟器
点击完成,你就完成了!......与那部分......
打开管理员提升的命令提示符并输入以下命令(注意:将 xxx.xxx.xxx.xxx 替换为您的 IP 地址!!!):
netsh http add urlacl url=http://xxx.xxx.xxx.xxx:10000/ user=everyone
netsh http add urlacl url=http://xxx.xxx.xxx.xxx:10001/ user=everyone
netsh http add urlacl url=http://xxx.xxx.xxx.xxx:10002/ user=everyone
在您尝试连接到 Azure 存储模拟器的设备上打开浏览器并尝试访问以下 URL:
http://xxx.xxx.xxx.xxx:10002/
http://xxx.xxx.xxx.xxx:10002/
http://xxx.xxx.xxx.xxx:10002/
如果您收到回复,则如下所示:
InvalidUri 请求的 URI 不代表服务器上的任何资源。
那么你是金子......如果没有,发表评论,我会更新我的回复。
请务必注意,您必须更新项目的 .config 文件中的连接字符串,在该文件中生成 URL 以访问您的图像(假设您正在这样做)。您可能不再使用开发连接字符串快捷方式!它必须更新为:(将 xxx.xxx.xxx.xxx 替换为上面的 IP 地址:
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint= http://xxx.xxx.xxx.xxx :10000/devstoreaccount1;TableEndpoint=http: //xxx.xxx.xxx.xxx 10002/devstoreaccount1;QueueEndpoint=http://xxx.xxx.xxx.xxx:10001/devstoreaccount1 ;
如果你在 AppSettings 部分中有这个并且你用 \n 很好地格式化它,你会破坏字符串并且存储组件不会将它识别为有效的连接字符串。所以保留一根长长的烦人的字符串。