0

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 管理员。)

内部异常:

“远程服务器返回错误:(502) Bad Gateway。”


其他尝试:

  1. 当我尝试下载其他文件(.xml/html/txt)时,代码成功下载了它们。

  2. 我使用 Azure 存储资源管理器下载它们,.mdb 文件 --failed 并出现同样的错误;其他文件类型,成功。

  3. 我在其他机器上测试,实际上和我的机器配置相同,它成功下载了.mdb文件和其他文件类型。

所以我认为我的机器存在一些 HTTP 过滤器或安全问题,但我不知道如何解决。大家有遇到过类似的问题吗?如果是,我希望从你那里得到解决方案。

我的工作机器是 Windows 7/64-bit/VS 2010 SP1/Azure SDK 1.6。如果信息有用。

4

1 回答 1

2

看来您在防火墙内。

这个错误

该请求被 HTTP 过滤器拒绝。请联系您的 Forefront TMG 管理员。)

内部异常:

“远程服务器返回错误:(502) Bad Gateway。”

实际上是从您的防火墙提供服务的——在这种情况下是 TMG 这意味着请求被阻止离开防火墙,因此永远不会到达 blob 存储端点。

与您的网络管理员聊天,看看他们是否可以通过防火墙跟踪流量。他们可能必须翻转开关才能允许此流量通过。

于 2012-12-04T22:24:42.423 回答