0
大家好,
我遇到了一个奇怪的问题。我正在使用以下代码从Azure blob存储中下载文件:
CloudBlobContainer container = AzureAccountManagement.currentBlobClient.GetContainerReference(containerName);
CloudBlob blob = container.GetBlobReference(blobName);
BlobRequestOptions options = new BlobRequestOptions();
options.Timeout = new TimeSpan(0, TiMEOUT, 0);
try
{
blob.DownloadToFile(localPath, blob.Name), options);
}
在上面的AzureAccountManagement中,我已经配置了正确的连接字符串。
使用上面的代码,当我下载扩展名为.mdb的文件时,我会得到如下例外:
发现了Microsoft.WindowsAzure.StorageClient.StorageServerException
消息=代理错误(HTTP筛选器拒绝了该请求。请联系Forefront TMG管理员。)
InnerException:
“远程服务器返回错误:(502)Bad Gateway。”
其他尝试:
当我尝试下载其他文件(.xml / html / txt)时,代码会成功下载它们。
我使用Azure存储资源管理器下载它们,.mdb文件 - 失败并出现同样的错误;其他文件类型,成功。
我在其他机器上测试过,实际上与我的机器配置相同,它成功下载.mdb文件和其他文件类型。
所以我认为我的机器有一些HTTP过滤器或安全问题,但我不知道如何解决它。你们遇到过类似的问题吗?如果是,我希望得到你的解决方案。
我的工作机器是Windows 7/64位/ VS 2010 SP1 / Azure SDK 1.6。如果信息有用。
答案 0 :(得分:2)
看来你在防火墙内。
此错误
HTTP过滤器拒绝了该请求。联系您的Forefront TMG管理员。 )
的InnerException:
“远程服务器返回错误:(502)Bad Gateway。”
实际上是从您的防火墙提供的 - 在本例中是TMG 这意味着请求被阻止离开防火墙,因此永远不会进入blob存储端点。
与您的网络管理员聊天,看看他们是否可以通过防火墙跟踪流量。他们可能不得不翻转开关以允许此流量通过。